我最近切换了回形针上传内容以使用:s3_permissions => :private
https://github.com/thoughtbot/paperclip/wiki/Restricting-Access-to-Objects-Stored-on-Amazon-S3
现在所有新上传内容都是安全且私密的。
现在我正在尝试保护之前的所有上传内容。
是否可以通过亚马逊S3触发将重新上传为安全的流程?
答案 0 :(得分:1)
更新所有对象的权限而不是重新上传它们要容易得多。
我可以想到两种方法:
Paperclip具有使用s3存储的附件的 < / p> set_permissions
方法,因此您可以遍历现有模型并在每条记录上调用类似user.avatar.set_permissions(:private)
的东西。
像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')