这是我第一个使用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和文件系统?
感谢您的帮助,
安东尼
答案 0 :(得分:0)
我已经做了很多这个,它对我来说很好。
我注意到你有一个小错字,你错过了env支票上的?
。它应该是:
Rails.env.production?
这可以解决您的问题吗?
答案 1 :(得分:0)
我认为您可以在config / environments / production.rb中为Amazon S3配置所有配置代码。