通过SMTP将文件上载到S3 Public

时间:2014-02-21 02:09:34

标签: file-upload amazon-web-services amazon-s3 bucket cloudmailin

我正在使用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)上传到存储桶的文件可见。

感谢。

1 个答案:

答案 0 :(得分:2)

问题是,当CloudMailin将您的附件上传到AWS S3时,需要为它们设置ACL权限。 AWS为此提供了几个“固定权限”。 CloudMailin真正感兴趣的只有两个:

  • bucket-owner-full-control - 这是您当前设置的内容,它授予存储桶拥有者对上传附件的完全控制权。
  • public-read - 这将授予您作为存储桶拥有者的完全控制权,但也将为每个人设置只读权限。

如果您登录CloudMailin,请前往您的地址列表,然后点击您需要修改的地址上的“管理”。然后前往“编辑附件商店”并选择“公开阅读”,然后当电子邮件附件上传到S3时,CloudMailin将设置此预设策略。