我正在使用aws-cli / 1.15.25 Python / 2.7.15 Darwin / 17.7.0 botocore / 1.10.25尝试使用以下命令将文件上传到S3:
aws s3 cp <file> s3://bucket.s3.amazonaws.com/<bucket name>
但是我得到以下信息:
u
pload failed: ./<file> to s3://bucket.s3.amazonaws.com/<bucket name> An error occurred (AllAccessDisabled) when calling the PutObject operation: All access to this object has been disabled
作为测试,我使用以下策略将存储桶设置为所有人都可以访问:
{
"Version": "2012-10-17",
"Statement": [
{
"Principal": "*",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:PutObjectAcl",
"s3:GetObjectAcl"
],
"Resource": [
"arn:aws:s3:::<bucket name>/*"
]
}
]
}
我的IAM用户具有正确的权限设置
我不知道还要看什么。我用Google搜索并尝试了大多数建议
答案 0 :(得分:2)
您在URL中两次指定了存储桶名称,或者实际上是在使用字符串“ bucket”。
您可以将虚拟托管样式用作:
http://bucketname.s3.amazonaws.com/path/to/file
http://bucketname.s3-aws-region.amazonaws.com/path/to/file
或路径样式网址:
http://s3.amazonaws.com/bucketnamepath/to/file
http://s3-aws-region.amazonaws.com/bucketname/path/to/file
将“ aws-region”替换为该区域。对于不是us-east-1的区域,请使用“ s3-aws-region”样式。南美的水桶示例:
答案 1 :(得分:1)
注意:当指定了不存在的文件夹路径(拼写错误)时,将显示AllAccessDisabled错误。