4

別のモデルのアバターをUserモデルにコピーしようとしましたが、そのときにAWS::S3::Errors::NoSuchKeyエラーが発生しています。Paperclip AWS :: S3 ::エラー::コピー時にNoSuchKeyエラー

ここでエラーがスローコードです:

old_avatar = OldAvatar.find(1) 
user = User.find(old_avatar.user_id) 
user.avatar = old_avatar.avatar 
user.save 

user.avatar = old_avatar.avatarラインがそれをスローするものであるが。ここで

は私のOldAvatarモデル...

has_attached_file :avatar, 
        :styles => { 
         :t => '20x20#', 
         :s => '40x40#', 
         :m => '50x50#', 
         :b => '80x80#', 
         :f => '100x100#' 
        }, 
        :storage => :s3, 
        :s3_credentials => { 
         :access_key_id => APP_CONFIG['s3_access_key_id'], 
         :secret_access_key => APP_CONFIG['s3_secret_access_key'] 
        }, 
        :path => ":attachment/:id/:basename:normalized_style.:extension", 
        :url => "/:attachment/:id/:basename:normalized_style.:extension", 
        :bucket => "old_bucket" 

そして、ここでは私のUserモデルである...

has_attached_file :avatar, 
         :styles => { 
         :t => '20x20#', 
         :s => '40x40#', 
         :m => '50x50#', 
         :b => '80x80#', 
         :f => '100x100#' 
         }, 
         :storage => :s3, 
         :s3_credentials => { 
         :access_key_id => APP_CONFIG['s3_access_key_id'], 
         :secret_access_key => APP_CONFIG['s3_secret_access_key'] 
         }, 
         :bucket => "new_bucket", 
         :path => ":attachment/:id_partition/:basename_:style.:extension", 
         :url => "/:attachment/:id_partition/:basename_:style.:extension" 

メモしていますで述べたように、私は(二つの異なるバケット間でコピーしています別のモデルモデルのコード)、それは多分それに関係がありますか?

+0

それはちょうど404のようです。イメージが存在するという事実を知っている場合にこれを取得していますか? –

+0

@FareeshVijayarangamはい、私はイメージが存在することを知っています。 – Shpigford

+0

@FareeshVijayarangam 'old_avatar.avatar'を記録すると、コピーしようとしているイメージへのパスが正しく表示されます。 – Shpigford

答えて

3

私はいくつかの初期の画像では矛盾したパスを持っていたので、私はPaperclipに設定したパスと一致しませんでした(間違った画像URLが生成されました)。

だから、問題は解決しました。

+0

Paperclip 3.0.xと2.xで生成されたルート間に一貫性の問題があるようです。ライブサイト用の宝石を更新する場合は、Paperclip gemのバージョンを修正することをお勧めします。これはあなたの "解決策"をいくらか正当化するかもしれませんが、矛盾したパスを書かなかったと思いますが、新しいバージョンの宝石はパスを以前のバージョンとは違って生成します。 –

+0

以前にアップロードされた画像のサイズを変更するために、スプレーが提供するレーキタスクを実行中にNo such Keyエラーを修正する方法をお探しの場合は、非常に助かりました。 http://stackoverflow.com/questions/16844281/can-run-run-rake-paperclipプレビュー画像 - class-spreeimage-in-rails-spre/16844282#16844282 – samuelkobe

0

:normalの代わりに:regularを使用すると、サイズが誤っているため、この問題が発生しました。 :regularがなかったので、このエラーが出ました。