簡體   English   中英

Rails Paperclip S3 - 缺少必需:桶選項

[英]Rails Paperclip S3 - missing required :bucket option

我正在嘗試將Amazon S3用於Paperclip附件。 首先,我試圖讓它在我的iMac上的開發環境中工作。

我創建了亞馬遜桶= ndeavor-dev和ndeavor-pro。 在下面的代碼中,我已經替換了存儲桶名稱和密鑰。 我有寶石的paperclipaws-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']
    }
  }

我嘗試了這個(移動:桶):

  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']
    }
  }

謝謝您的幫助!

像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"                        

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM