4

ペーパークリップの添付ファイルに Amazon S3 を使用しようとしています。まず、iMac の開発環境で動作させようとしています。

Amazon バケット = ndeavor-dev および ndeavor-pro を作成しました。以下のコードでは、バケット名とキーを置き換えています。私は宝石とを持っていpaperclipますaws-sdk

私が得るエラーは次のとおりです。

ArgumentError at /attachments
missing required :bucket option

config/environments/development.rb でこれを試しました:

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

そして、私はこれを試しました(:bucketを移動します):

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

助けてくれてありがとう!

4

1 に答える 1

4

dcro が言うように、AWS_BUCKET 環境変数を適切に設定する必要があります。

これを行うには、config/application.yml にファイルを作成し、Amazon 資格情報を使用して次の内容を入れます。

AWS_ACCESS_KEY_ID: "whatever_the_key_is"
AWS_SECRET_ACCESS_KEY: "whatever_the_secret_is"
AWS_BUCKET: "ndeavor-dev"

次に、サーバーを再起動します。その後、次のようにモデルを使用できます。

 has_attached_file :attachment                                                                 ,
                      :storage        => :s3                                                 ,
                      :s3_credentials => {:bucket            => ENV['AWS_BUCKET'           ],
                                          :access_key_id     => ENV['AWS_ACCESS_KEY_ID'    ],
                                          :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']},
                      :s3_protocol    => "https"                                             ,
                      :s3_host_name   => "s3-eu-west-1.amazonaws.com"                        
于 2013-09-09T19:52:14.593 に答える