Rails公共/系统用于用户文件

时间:2012-12-18 20:29:13

标签: ruby-on-rails-3 dragonfly-gem

Rails gems DragonFly Paperclip 都使用public / system文件夹来存储上传的文件。

据我所知,每个人都可以访问此文件夹 - 至少是根文件,404.html或其他人。

如何保护这些上传的文件?有没有可用的配置选项?

我需要处理由用户上传生成的转码视频文件,并通过一些权限检查使其可用。

有什么建议吗?

1 个答案:

答案 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?