1

我使用cloudmailin.com将附件从电子邮件上传到S3存储桶。存储桶本身具有公共设置,但我无法从数据链接访问上传的数据,因为S3显然不会使其他用户上传的文件变为公共。使文件由SMTP上传到S3 Public

目前,我使用的水桶政策之下,这是应该做桶的内容公开:

{ 
    "Version": "2008-10-17", 
    "Statement": [ 
     { 
      "Sid": "AllowPublicRead", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::mjkaufer_cloudmailin/*" 
     } 
    ] 
} 

这只能如果我手动上传东西S3。如果我手动上传东西,我可以查看链接,并可以在新窗口中打开。但是,如果它是从cloudmailin上传的,我无法查看该文件。

有人知道解决方法吗?我只需要让第三方(cloudmailin)上传到存储桶的文件可见即可。

谢谢。

回答

2

问题是,由于CloudMailin会将附件上传到AWS S3,因此需要为它们设置ACL权限。 AWS为此提供了一些“预设权限”。只有两个是真的感兴趣CloudMailin如下:

  • bucket-owner-full-control - 这是你目前正在设置什么,它赋予了上传附件的区拥有完全控制权。
  • public-read - 这会授予您完全控制存储桶所有者的权限,但也会为每个人设置只读权限。

如果您登录到CloudMailin头到您的地址列表并点击您需要编辑的地址上的'管理'。然后前往“编辑附件存储”并选择“公开阅读”,然后CloudMailin将设置此封装策略为电子邮件附件上传到S3。