调用HeadObject操作时发生客户端错误(400):错误请求已完成1个部分,其中包含...文件

sho*_*oke 19 amazon-s3 amazon-ec2 amazon-web-services aws-cli

我正在尝试通过cli将文件从私有s3-bucket复制到我的ec2实例.ec2与存储桶位于同一区域,并附加了以下IAM角色(AmazonS3FullAccess):

{
"Version": "2012-10-17",
"Statement": [
   {
     "Effect": "Allow",
     "Action": "s3:*",
     "Resource": "*"
   }
 ]
}
Run Code Online (Sandbox Code Playgroud)

但该命令aws s3 cp s3://[BUCKETNAME]/index.html失败并显示错误:

调用HeadObject操作时发生客户端错误(400):错误请求已完成1个部分,其中有...文件剩余.

我已经仔细检查了桶名的拼写...

sho*_*oke 30

我在语句中添加了--region选项,现在一切正常:

aws s3 cp s3:/[BUCKETNAME]/ . --recursive --region [REGION]
Run Code Online (Sandbox Code Playgroud)


小智 15

如果使用具有代入角色的临时安全凭证,当您的会话过期时也会发生此错误。不是您期望的禁止或未知 ID。


小智 9

--region参数对我不起作用。

我尝试使用--profile,一切正常。

aws s3api head-bucket --bucket xxxx --profile dev-profile
Run Code Online (Sandbox Code Playgroud)


Tus*_*ami 5

升级到最新版本的 aws cli 后,我的问题就得到了解决。升级方法如下: pip install --upgrade --user awscli

指定区域没有帮助