Rails gems DragonFly 和 Paperclip 都使用public / system文件夹来存储上传的文件。
据我所知,每个人都可以访问此文件夹 - 至少是根文件,404.html或其他人。
如何保护这些上传的文件?有没有可用的配置选项?
我需要处理由用户上传生成的转码视频文件,并通过一些权限检查使其可用。
有什么建议吗?
答案 0 :(得分:1)
不确定dragonfile但您可以更改回形针文件上传选项。
您可以改用Amazon S3吗?
将以下内容添加到您的环境中:
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['AWS_BUCKET'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
通过将其添加到gemfile中,确保已安装s3 gem:
gem 'aws-sdk'
是否有帮助,或者您是否需要将它们保存在服务器上以进行处理?
- 编辑 -
如果你不能使用s3,显然heroku建议使用临时文件。阅读这篇文章:
How can I change the upload directory for paperclip on heroku to /tmp?