我尝试上传到 s3,当我看到 s3 存储桶日志中的日志时,内容如下:
mybucket-me [17/Oct/2013:08:18:57 +0000] 120.28.112.39
arn:aws:sts::778671367984:federated-user/[email protected] /cdn-cgi/l/email-protection BB3AA9C408C0D26F
REST.POST.BUCKET avatars/dean%2540player.com/4.png "POST / HTTP/1.1" 403
AccessDenied 231 - 132 - "http://localhost:8080/ajaxupload/test.html" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17" -
我的访问被拒绝。从它的指向来看,我认为我唯一错过的是添加存储桶策略。所以就这样吧。
使用我的电子邮件,我可以登录我的应用程序并上传头像。我想要放置头像的存储桶名称是 mybucket-me,其中有一个名为 avatars 的子存储桶。
-mybucket-me
-avatars
[email protected] /cdn-cgi/l/email-protection //dynamic based on who are logged in
-myavatar.png //image uploaded
如何添加存储桶策略,以便我可以授予像我这样的联合在 s3 中上传或者我将在我的存储桶策略中添加的正确声明是什么,以便它可以授予我上传到我们的存储桶的权限?
2019+
您现在必须:
- Set 阻止新的公共 ACL 和上传公共对象 to false 如果您的物品是公开的(图中左上角的政策)
- Set
acl: 'private'
上传图片时如果您的物品属于私人物品
Node.js 中的示例:
const upload = multer({
storage: multerS3({
s3: s3,
bucket: 'moodboard-img',
acl: 'private',
metadata: function (req, file, cb) {
cb(null, {fieldName: file.fieldname});
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)