Rails Marketplace应用程序 - AWS权限

时间:2015-02-10 01:09:23

标签: ruby-on-rails amazon-s3 paperclip

我在Rails 4 / Paperclip上有一个市场应用,我正在使用AWS S3进行图像存储。我希望图片网址为https(否则我的ssl证书会在某些浏览器上显示警告)

根据有关paperclip AWS settings的文档,它说" s3_protocol:为S3资产生成的网址协议。可以是' http',' https',也可以是空字符串,以生成与协议相关的网址。默认为' http'当您的:s3_permissions为:public_read(默认值)和' https'当你的:s3_permissions是其他任何东西。"

根据上述内容,不同的s3_permissions位于canned acl部分下方。

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

理想情况下,我想要一个权限,只有图像所有者(卖家)或水桶所有者(我)才能覆盖图像和#34; 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
}

1 个答案:

答案 0 :(得分:0)

我使用默认的public_read,所有上传都来自控制器(用户通过设计和专家进行身份验证),并使用AWS访问凭证将回形针上传到存储桶。