我正在使用终端将文件从 s3 存储桶复制到本地计算机,但我不断收到错误:
fatal error: An error occurred (404) when calling the HeadObject operation: Key "file_000" does not exist
我正在使用命令:
usr/local/bin/aws s3 cp s3://{bucket}/file_000 /Users/user/Documents/Docs/dir/new_file.csv
我知道该文件存在,使用:
aws s3 ls s3://{bucket} --recursive --human-readable
并显示为:
2022-08-04 15:53:12 21.2 MiB file_000
我尝试将
--recursive
添加到命令末尾。该命令执行后会创建一个名为 new_file.csv
的空目录
我能做些什么来解决这个问题吗?
我遇到了同样的问题,对我有用的是返回 s3 存储桶并确认存储桶中对象的名称与我的代码内部相同。我意识到事实并非如此,一旦我纠正了这一点并重新运行程序,一切都工作正常。
对于最近遇到此问题的任何人来说,当您尝试从文件夹复制文件时,可能会发生这种情况。
想象一下,我有一个包含数千个文件的大文件夹,我想将少量文件复制到另一个文件夹。在这种情况下,如果我有 s3 路径s3://object1/object2/
,其中
object2
是文件夹,我需要在我的请求中添加
--recursive
标志。整个 CLI 命令将是:
aws s3 cp "s3://object1/object2/" "s3://object1/object3/" --recursive --exclude "*" --include "*.jpg"
附注这不是“Key '' does not exit”问题的唯一解决方案,您可能需要进一步调试它: