6

オブジェクトが Amazon の S3 サービスに正常にアップロードされたときに paperclip から返されるエンドポイントを構成しようとしています。アップロードとすべてが正しく機能していますが、返された URL はアップロードを表示するには正しくありません。

現在、返されている URL は次のとおりですhttp://s3.amazonaws.com/path/to/my/items(下の図を参照)。

の代わりにs3.amazonaws.com、バケットの場所に固有のルートが必要です (例: s3-us-west-1.amazonaws.com/path/to/my/items )

ここに画像の説明を入力

別の URL パス (s3.amazonaws.com から別のものへ) をどこで設定する必要がありますか? 上記のパスを含む URL を構成ファイルに次のように追加しようとしました。

  #Paperclip Amazon S3
  config.paperclip_defaults = {
      :storage => :s3,
      :url => "https://s3-us-west-1.amazonaws.com/",
      :s3_credentials => {
          :bucket => ENV['S3_BUCKET_NAME'],
          :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
          :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']

      }

  }

これは何の効果もないように見えました。このオプションをどこに設定すべきか教えてください!

前もって感謝します!

4

3 に答える 3

0

Spree 2.2 に移行したときにも同じ問題が発生しましたが、正しい方法で解決する方法がまだわかりません。Paperclip は構成からパスを更新する必要があったようですが、そうではありません。

より良い解決策がないので、Spree::Image クラスを次のようにオーバーライドしました。

1 Spree::Image.class_eval do
2   has_attached_file :attachment, 
3     styles: { mini: '48x48>', small: '100x100>', product: '240x240>', large: '600x600>' },
4     default_style: :product,
5     url: '/spree/products/:id/:style/:basename.:extension',
6     path: 'products/:id/:style/:basename.:extension',
7     convert_options: { all: '-strip -auto-orient -colorspace sRGB' }·
8 end 
于 2014-04-02T15:29:38.423 に答える