为生产和文件后端重新安装S3后端以用于开发模式

时间:2015-02-21 08:42:11

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

这是我第一个使用Refile宝石的Rails项目,所以我还没有完全掌握这个精彩文件上传宝石的所有细节。

我尝试配置Refile gem,以便在生产模式下将文件上传到Amazon S3,但在开发模式下,文件会上传到文件系统。

我的config / initializers / refile.rb文件如下所示:

require "refile/backend/s3"

aws = {
  access_key_id: Rails.application.secrets.s3_key, 
  secret_access_key: Rails.application.secrets.s3_secret, 
  bucket: "adlit",
}
Refile.cache = Refile::Backend::S3.new(prefix: "cache", **aws)
Refile.store = Refile::Backend::S3.new(prefix: "store", **aws)
end

但是当我尝试在开发中上传图片时,我收到以下错误消息:

Missing Credentials. Unable to find AWS credentials. You can configure your     AWS credentials a few different ways: * Call AWS.config with :access_key_id and     :secret_access_key * Export AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY to ENV *...

所以我尝试通过在条件中添加配置来解决这个问题:

if Rails.env.production
  ...
end

但是没有解决它,我仍然在开发模式下收到上述错误消息。

有没有人知道如何在开发模式下配置Refile将文件上传到生产中的Amazon S3和文件系统?

感谢您的帮助,

安东尼

2 个答案:

答案 0 :(得分:0)

我已经做了很多这个,它对我来说很好。

我注意到你有一个小错字,你错过了env支票上的?。它应该是:

Rails.env.production?

这可以解决您的问题吗?

答案 1 :(得分:0)

我认为您可以在config / environments / production.rb中为Amazon S3配置所有配置代码。