1

私のユーザーは、外部画像 URL (http://their-site.com/photo.jpg) を - たとえば - に保存します@user.external_image。その URL を受け取り、Carrierwave を使用して S3 に保存する User クラスのメソッドを作成しようとしています。

上記で、実行してイメージをS3に「アップロード」し@userたいと思います。アップローダをUser クラスにマウントし、次のメソッドを記述して、@user.save_to_s3これを実行しようとしました。:s3_image

def save_to_s3
  self.remote_s3_image_url = self.external_image
  save
end

@userしかし、レコードでそのメソッドを呼び出すと、次のエラーが発生します。

「ArgumentError: 必要な引数がありません: aws_access_key_id、aws_secret_access_key」

近づいていますが、設定されているにもかかわらず、S3 資格情報を取得していません。ご意見やご提案をいただければ幸いです。

4

1 に答える 1

0

この問題は、Carrierwave または Fog とは無関係であることが判明しました。.env(アプリのファイルで) 設定した ENV 変数が、ブートストラップされた Rails 環境 (Rails コンソールなど) に読み込まれていないのは、私の見落としでした。http://github.com/bkeepers/dotenv (まさにその問題を解決する) をバンドルに追加すると、このsave_to_s3方法が機能しました。

于 2012-11-10T02:52:45.587 に答える