这是我第一个使用Refile gem的Rails项目,所以我还没有完全掌握这个完美的文件上传gem的所有细节。
我正在尝试配置Refile gem,以便在生产模式下将文件上传到亚马逊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将文件上传到生产环境中的亚马逊S3,以及在开发模式下上传到文件系统吗?
谢谢你的帮忙,
安东尼
发布于 2015-02-24 20:15:17
我几乎就是这么做的,它对我来说很好。
我注意到你有一个小的打字错误,你遗漏了环境检查上的?。它应该是:
Rails.env.production?
你的问题解决了吗?
发布于 2015-04-16 14:42:24
我认为你可以把亚马逊S3的所有配置代码放在config/environments/production.rb中。
https://stackoverflow.com/questions/28643834
复制相似问题