0

これはRefile gem を使用した初めての Rails プロジェクトなので、このすばらしいファイル アップロード gem の詳細をまだ完全には把握していません。

本番モードではファイルが Amazon S3 にアップロードされるように Refile gem を設定しようとしていますが、開発モードではファイルがファイル システムにアップロードされます。

私の 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

しかし、それでも問題は解決しませんでした。開発モードで上記のエラー メッセージが引き続き表示されます。

本番環境では Amazon S3 にファイルをアップロードし、開発モードではファイル システムにファイルをアップロードするように Refile を設定する方法を知っている人はいますか?

ご協力いただきありがとうございます、

アンソニー

4

2 に答える 2

0

私はこれをほぼ正確に実行しましたが、それは私にとってはうまく機能します。

?小さなタイプミスがあることに気付きました.envチェックに欠けています. そのはず:

Rails.env.production?

それはあなたの問題を解決しますか?

于 2015-02-24T12:15:17.323 に答える