Rails Marketplace应用程序-AWS权限



我在Rails 4/Paperclip上有一个市场应用程序,正在使用AWS S3进行图像存储。我希望图像URL是https(或者我的ssl证书在某些浏览器上显示警告)

根据有关回形针AWS设置的文档,它说:"s3_procol:生成到s3资产的URL的协议。可以是‘http’、‘https’,也可以是一个空字符串来生成与协议相关的URL。当您的:s3_permissions为:public_read(默认值)时,默认为‘http’,而当您的:s3_permmissions为其他任何内容时,则默认为‘https"。"

根据上面的内容,不同的s3_permissions在canned-acl部分下面。

我的问题是,对于一个我希望多个用户能够上传图像的市场,我应该使用公共读写设置吗?这听起来不太安全——这是否意味着任何人都可以编辑或删除图像?

理想情况下,我想要一个权限,只有图像所有者(卖家)或bucket所有者(我)可以覆盖图像,并且"AllUsers"可以读取图像。我应该使用哪种设置?还是我应该做点别的?

我的回形针设置:

config.paperclip_defaults = {
  :storage => :s3,
  :s3_credentials => {
    :bucket => ENV['S3_BUCKET_NAME'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  },
    :s3_protocol => :https,
    :s3_permissions => :public_read_write
}

我使用默认的public_read,所有上传都通过控制器(在控制器中,用户通过design和pundit进行身份验证),回形针使用AWS访问凭据上传到bucket。

最新更新