18

Heroku で Paperclip と SWS S3 を使用して、ユーザーが画像をアップロードできるようにしようとしています。

認証情報が yml ファイルに保存されていません。Heroku ページの指示に従いました: https://devcenter.heroku.com/articles/paperclip-s3

しかし、アプリを実行して画像をアップロードしようとすると、次のメッセージが表示されます。

missing required :bucket option
Rails.root: /Users/scottsipiora/Sites/clycss

Application Trace | Framework Trace | Full Trace
app/controllers/instructors_controller.rb:63:in `block in update'
app/controllers/instructors_controller.rb:62:in `update'

指示には、コントローラーの変更については何も言及されていません。次のようなものを入れるように言っている例を見てきました。

私のモデルには、次のコードがあります。

class Instructor < ActiveRecord::Base
  attr_accessible :bio, :hometown, :name, :school, :sort_order, :started_sailing, :started_teaching, :photo
  has_attached_file :photo, styles: {
    thumb: '100x100>',
    square: '200x200#',
    medium: '300x300>'
  }
end

私の production.rb には次のものがあります (明らかに、実際の資格情報をモックの資格情報に置き換えます):

  config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => ENV['bucket name'],
      :access_key_id => ENV['key_id'],
      :secret_access_key => ENV['access_key']
    }
  }

また、本番用と開発用に別々のバケットを作成したので、よりクリーンになりました。

何か案は?私は比較的新しいので、これはかなり簡単なはずです。

前もって感謝します。

4

5 に答える 5

10

heroku config環境変数を確認してください。

通常、それらはすべてキャップであり、スペースの代わりにアンダーバーがあります。

設定されていない場合は、環境変数を次のように設定する必要があります

heroku config:add BUCKET_NAME=my_bucket_name

コードを更新します。

:bucket => ENV['BUCKET_NAME'],

Herokuリファレンス

于 2012-11-18T20:53:45.897 に答える
7

スコット、ここで混乱があった場合は申し訳ありません。

私はデベロッパー センターの記事の著者です。上記の B Seven が述べたように、Heroku アプリケーションで AWS Config Vars を設定する必要があります。

Heroku は最近ドキュメントを更新し ( https://devcenter.heroku.com/articles/config-vars#example )、今後setよりも優先されます。add


$ heroku config:set AWS_BUCKET=your_bucket_name
$ heroku config:set AWS_ACCESS_KEY_ID=your_access_key_id
$ heroku config:set AWS_SECRET_ACCESS_KEY=your_secret_access_key

于 2013-04-08T17:31:51.637 に答える
3

環境変数で値を設定するときは、選択した CLI を必ず再起動してください。私のように、ENV 変数を使用して Paperclip と AWS を正しくセットアップし、ターミナルを終了して再度開くことによって問題を解決するためだけに、Google で多くの時間を無駄にしないでください。

于 2017-01-05T21:43:45.660 に答える