【问题标题】:Rails PaperClip: How can you convert a public_read file to private?Rails PaperClip:如何将 public_read 文件转换为私有文件?
【发布时间】:2018-02-15 13:59:06
【问题描述】:

我最近将回形针上传切换为使用 :s3_permissions => :private

https://github.com/thoughtbot/paperclip/wiki/Restricting-Access-to-Objects-Stored-on-Amazon-S3

所有新上传的内容现在都是安全且私密的。

现在我正在尝试保护所有以前的上传。

是否可以触发一个进程,该进程将重新上传与 amazon S3 一样安全?

【问题讨论】:

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


    【解决方案1】:

    更新所有对象的权限比重新上传它们要容易得多。

    我能想到的两种方法:

    1. Paperclip 有一个使用 s3 存储的附件的 set_permissions 方法,因此您可以遍历现有模型并在每条记录上调用类似 user.avatar.set_permissions(:private) 的内容。

    2. s3cmd 之类的工具也非常适合完成此任务。一旦安装,这样的命令就可以做到:

    s3cmd setacl --acl-private --recursive --verbose s3://your_bucket/paperclip/path

    更新:set_permissions 没有按照您的想法做;它在创建对象时使用,但不更新对象。而是使用回形针 s3_object 方法,然后使用 aws-sdk api 更新对象:

    user.avatar.s3_object.acl.put(acl: 'private')

    【讨论】:

      猜你喜欢
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 2011-04-02
      • 2021-05-03
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多