我正在使用cloudmailin.com将附件从电子邮件上传到S3存储桶。存储桶本身具有公共设置,但我无法从数据链接访问上传的数据,因为S3显然不会公开其他用户上传的文件。
目前,我正在使用下面的存储桶策略,该策略应该将存储桶的内容公开:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mjkaufer_cloudmailin/*"
}
]
}
仅当我手动将某些内容上传到S3时才有效。如果我手动上传某些内容,我可以查看该链接,它可以在新窗口中打开。但如果它是从cloudmailin上传的,我就无法查看该文件。
有人知道解决方法吗?我只需要让第三方(cloudmailin)上传到存储桶的文件可见。
感谢。
答案 0 :(得分:2)
问题是,当CloudMailin将您的附件上传到AWS S3时,需要为它们设置ACL权限。 AWS为此提供了几个“固定权限”。 CloudMailin真正感兴趣的只有两个:
bucket-owner-full-control
- 这是您当前设置的内容,它授予存储桶拥有者对上传附件的完全控制权。public-read
- 这将授予您作为存储桶拥有者的完全控制权,但也将为每个人设置只读权限。如果您登录CloudMailin,请前往您的地址列表,然后点击您需要修改的地址上的“管理”。然后前往“编辑附件商店”并选择“公开阅读”,然后当电子邮件附件上传到S3时,CloudMailin将设置此预设策略。