2

APIからキャッシュした画像をS3バケットにアップロードするレーキタスクがあります。私の見解では、画像を出力しようとしましたが、機能していないようです。私がやりたいのは、画像をファイルシステムにキャッシュしてS3に送信し、ファイルシステムではなくS3バケットからの画像の場所を使用したいです。私のコードは次のようになります。

Railsコンソールでは、画像のURLを確認するためだけにこれを行います。

1.9.3p125 :002 > a.image
 => http:://s3-eu-west-1.amazonaws.com/ramen-hut/pictures/1.jpg?1343645629 
1.9.3p125 :003 > 

アプリでペーパークリップを使用していますが、URLを「http://」として追加することになっていますか?かなり奇妙に思えます。私のindex.html.erbのコードは次のようになります。

<li>
  <%= movie.title %>
  <%= image_tag movie.image.url %>
</li>

しかし、これは次のhtmlになります。

<li>
  Cowboy Bebop
  <img alt="1" src="/assets/http:://s3-eu-west-1.amazonaws.com/ramen-hut/pictures/1.jpg?1343645629">
</li>

URLの前に「/assets」/が含まれているのはなぜですか?

チュートリアルに従って、ヨーロッパのS3バケットの画像URLを設定するようにペーパークリップを設定しました。だから私のenvironment.rbには、これがあります:

#Signature correction for Paperclip and AWS
AWS::S3::DEFAULT_HOST = "s3-eu-west-1.amazonaws.com"

そして、私は次のコードで私のinitialisersディレクトリにaws-signature.rbファイルを持っています:

#Makes Paperclip use the correct URL for images
Paperclip.interpolates(:s3_eu_url) { |attachment, style|
  "#{attachment.s3_protocol}://s3-eu-west-1.amazonaws.com/#{attachment.bucket_name}/#{attachment.path(style).gsub(%r{^/}, "")}"
}
4

1 に答える 1

2

URLに問題があります。http:://代わりにhttp://、image_tagはそれが絶対URLであることを認識しません。

これらのURLをどのように生成しますか?宝石またはあなた自身のコード?

于 2012-07-30T17:45:39.467 に答える