调用HeadObject操作时发生错误(404):Key“”不存在

问题描述 投票:0回答:4

我正在使用终端将文件从 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

的空目录

我能做些什么来解决这个问题吗?

amazon-web-services amazon-s3 command-line-interface
4个回答
8
投票

我遇到了同样的问题,对我有用的是返回 s3 存储桶并确认存储桶中对象的名称与我的代码内部相同。我意识到事实并非如此,一旦我纠正了这一点并重新运行程序,一切都工作正常。


3
投票

对于最近遇到此问题的任何人来说,当您尝试从文件夹复制文件时,可能会发生这种情况。

想象一下,我有一个包含数千个文件的大文件夹,我想将少量文件复制到另一个文件夹。在这种情况下,如果我有 s3 路径

s3://object1/object2/

,其中 
object2
 是文件夹,我需要在我的请求中添加 
--recursive
 标志。

整个 CLI 命令将是:

aws s3 cp "s3://object1/object2/" "s3://object1/object3/" --recursive --exclude "*" --include "*.jpg"
附注这不是“Key '' does not exit”问题的唯一解决方案,您可能需要进一步调试它:

https://repost.aws/knowledge-center/404-error-nosuchkey-s3


1
投票
我在尝试从 s3 访问一个文件时遇到了这个问题,结果发现我请求的文件不存在!希望有帮助


0
投票
我遇到了这个问题。我尝试将用户从 root 切换到 ec2-user,它对我有用

© www.soinside.com 2019 - 2024. All rights reserved.