我使用linux s3cmd将文件上传到AWS S3。我可以成功上传一个zip文件,这已经工作了几个月了,没问题。我现在还需要上传一个json文件。当我尝试将json文件上传到同一个存储桶时,我收到S3错误:拒绝访问。我无法弄清楚原因,请帮助。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mybucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
s3cmd --mime-type=application/zip put myfile.zip s3://mybucket
SUCCESS
s3cmd --mime-type=application/json put myfile.json s3://mybucket
ERROR: S3 error: Access Denied
答案 0 :(得分:0)
现在,建议使用AWS Command-Line Interface (CLI)而不是s3cmd
。
aws s3 cp
命令将尝试自动猜测mime类型,因此您可能不需要像在示例中那样指定它。
如果您的心脏已经确定s3cmd
无效的原因,请尝试打开权限(例如,允许s3:*
)以查看是否可以解决问题,然后缩小列表范围允许的API调用以确定哪个s3cmd
正在调用。
答案 1 :(得分:0)
或者您可以使用Minio client aka mc使用 mc cp 命令完成此操作。
$ mc cp myfile.json s3alias/mybucket
希望它有所帮助。
免责声明:我为Minio
工作答案 2 :(得分:0)
这是s3cmd的一个错误,简单的更新解决了这个问题。