2

Paperclip は、Heroku 上の私のアプリでは完全に機能しますが、ローカルでは機能しないようです。何かをしようとするたびに、「必要な :bucket オプションがありません」というメッセージが表示されます...しかし、バケットはそこにあり、Heroku で動作します!

それが役立つ場合、これが私のモデルです:

  has_attached_file :screen_one, :styles => { :medium => "800x600>", :thumb => "110x80#" },
  :storage => :s3,
  :s3_credentials => {
    :access_key_id => ENV['accesskeyishere'],
    :bucket => ENV['sitebuilderreport'],
    :secret_access_key => ENV['secretaccesskeyishere']
  }

これは公開投稿であるため、アクセス キーを変更しました :)

4

5 に答える 5

6

私は同じ問題に遭遇しました(場所ごとに :bucket がありません)。私の場合、以下の答えは完全に機能します。

を。これらを.bash_profileに追加します (注: Amazon アカウントの資格情報を入力してください)

export AWS_ACCESS_KEY_ID=XXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXX
export AWS_BUCKET=XXXXXXXXXX

b. これは私のdevelopment.rbです(注: 何も変更せずにコピーして貼り付けます)

Paperclip.options[:command_path] = "/usr/local/bin/"

config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => ENV['AWS_BUCKET'],
      :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
      :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
    }
}

Rails アプリを最新のペーパークリップと aws-s3 gem で再バンドルしてください。また、これは .bash_profile ファイルの更新であるため、ターミナルを終了してすべてを再度実行してください。

今、すべてがうまくいくことを願っています。

于 2012-11-06T20:01:01.520 に答える
2

MacOSのユーザー.bash_profileでENV[]変数を定義する必要があります。

「herokuconfig」を実行して、S3のheroku環境キーを確認し、ローカル環境で定義する必要があります。

例えば:

$ heroku config

AWS_ACCESS_KEY_ID: your_S3_XXX_key<br />
AWS_SECRET_ACCESS_KEY: your_secret_XXX_key<br />
AWS_BUCKET: your_production_bucket<br />
DATABASE_URL: postgres://xxxxxxx<br />
[...]<br />

access_keyとsecretを.bash_profileファイルにコピーする必要があります。

export AWS_ACCESS_KEY_ID=your_S3_XXX_key<br />
export AWS_SECRET_ACCESS_KEY=your_secret_XXX_key
export AWS_BUCKET=your_development_bucket => "Specify new bucket for your dev environement".
于 2012-08-01T15:01:29.770 に答える
0

単純に使用することもできます(もちろん正しい値を入力してください):

config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => 'AWS_BUCKET',
      :access_key_id => 'AWS_ACCESS_KEY_ID',
      :secret_access_key => 'AWS_SECRET_ACCESS_KEY'
    }
}
于 2012-12-14T03:46:01.530 に答える