我认为它只需要s3:PutObject
权限,因为尚未创建对象。
我做了类似的事情:
post = bucket.presigned_post({
key: "/uploads/${filename}",
acl: 'public-read'
})
然后,我使用结果创建一个HTML表单来上传文件。
IAM用户(我使用的凭据)需要s3:PutObjectAcl
权限才能执行此操作。没有这个许可,我被拒绝访问。
答案 0 :(得分:2)
您仍然在不是默认值的对象上放置ACL。
我无法在文档中找到引文,但是有理由认为"你可以把一个对象放在这个桶中#34;与"不同的权限(或信任级别);您可以指定谁可以访问此存储桶中的对象,"您是否现在通过上传带有固定ACL的对象或稍后通过修改对象的ACL来指定它。
将对象设置为public
的能力绝对代表不同级别的权限。