2

私はRails 3.2にアップグレードしたばかりで、Amazon S3にはPaperclipを使用してアプリケーションに写真をアップロードしています。Rails 3.2 Paperclip S3がローカルホストにロードされていない

私のイメージURLは以下のようになります前に:

http://s3.amazonaws.com/dealphotos.website.com/photos/428/large/Sandisk120Drive?1334754504 

今、ローカルホスト上の私のイメージのURLは次のとおりです。

http://s3.amazonaws.com/dealphotos.website.com/deals/photos/000/000/428/large/Sandisk120Drive?1334754504 

お知らせの追加000/000の - 私はそれらを取り出して、リンクを訪問しても、それは言う:

<Error> 
    <Code>AccessDenied</Code> 
    <Message>Access Denied</Message> 
    <RequestId>"Long String of Numbers"</RequestId> 
    <HostId> 
    "Gives me a really long string of letters and numbers" 
    </HostId> 

マイディールモデル:

has_attached_file :photo, :styles => { :small =>"268x160>", :large =>"350x250>" }, 
      :storage => :s3, 
      :bucket => 'dealphotos.website.com', 
      :s3_credentials => { 
      :access_key_id => ENV['S3_KEY_SPICY'], 
      :secret_access_key => ENV['S3_SECRET_SPICY'] 
     } 

そして、画像が表示さいけません!

私がしなければならなかったのは、Herokuから引っ張ってくれただけで、私のすべての画像とファイルが私の発展に向かいました。どうしたの?

答えて

1

ほとんどの場合、Paperclip(バージョン> = 3)の最新バージョンを使用しています。

これはペーパークリップのメジャーバージョンなので、以前のバージョンのペーパークリップとの非互換性が文書化されています。

MAJOR(と私の本の中でも良い)の1つは、資産のデフォルトの保存場所が変更されたことです。

以前は/system/:attachment /:id /:style/:filename.:extension(メモリから)でした。たとえば、同じ名前の2つの添付ファイル(会社のロゴとプロダクトロゴ)があると、これは悲惨です。

今ペーパークリップが使用する新しいパスが/system/:class/:attachment/:id_partition/:style/:filename.:extension

ですこれは、すべての資産が上記で指定したディレクトリに保存されることを意味します。 :id_partitionsは、1つのディレクトリ内のノード(ファイル/ディレクトリ)の数が1000を超えないように使用されます。

私はあなたが問題を見ている理由を説明できたと思います。デフォルトのパスが変更されました。新しいディレクトリ方式で正しい場所に

  1. 移動古い資産(痛みを伴うが、推奨) -

    あなたは2つのになりましオプションがあります。

  2. 新しいアセットを古いディレクトリ構造に移動し、古いスキームを引き続き使用するには、モデルの添付ファイル定義にa:url +:pathオプションを追加します。 (https://github.com/thoughtbot/paperclip/blob/master/UPGRADING参照)。

新しい構造と古い構造の両方に画像があるようです。だから、ファイルを決めるのに関係なく、ある構造から別の構造に移動する必要があります。アセットが何らかの方法でブックマークされていない限り、古いアセットを新しいディレクトリ構造に移動することをお勧めします。

+0

あなただけの新しいバージョンに更新しましたし、新しいディレクトリ構造に資産を持っていけない場合、あなたはおそらくペーパークリップの〜> 2.0バージョンにGemfileをロックし、取り戻すことができ古い機能 –

関連する問題