2

Rails 3.2 にアップグレードしたばかりで、Amazon S3 と Paperclip を使用して写真をアプリにアップロードしています。

画像の URL が次のようになる前に:

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

現在、Localhost の画像 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 からプルするだけで、すべてのイメージとファイルが開発に使用されていました。どうしたの?

4

2 に答える 2

1

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

これは paperclip のメジャー バージョンであるため、古いバージョンの paperclip との非互換性が文書化されています。

主要な (そして私の考えでは良い) 変更の 1 つは、アセットの既定の保存場所が変更されたことです。

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

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

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

問題が発生している理由を説明できたことを願っています。デフォルトのパスが変更されました。

現在、2 つのオプションがあります -

  1. 古いアセットを新しいディレクトリ スキームの正しい場所に移動します (面倒ですが推奨)。

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

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

于 2012-07-31T09:11:44.900 に答える
0

CarrierWave gem からファイルへのアップロードを確認してください。3.2 でも問題なく動作します ;)

http://railscasts.com/episodes/253-carrierwave-file-uploads

于 2012-07-31T09:16:16.357 に答える