回形针上的Paperclip AWS :: S3 :: Errors :: NoSuchKey错误

时间:2012-03-06 21:50:36

标签: ruby-on-rails ruby-on-rails-3 amazon-s3 amazon-web-services paperclip

我正在尝试将其他模型的头像复制到我的User模型中,但在尝试执行此操作时出现AWS::S3::Errors::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"

请注意,我正在两个不同的存储桶之间进行复制(如不同的型号代码中所述),所以这可能与它有关吗?

2 个答案:

答案 0 :(得分:3)

原来我的某些早期图像存在一些不一致的路径,因此它们与我为Paperclip设置的路径不匹配(因此生成了错误的图像URL)。

所以,问题解决了。

答案 1 :(得分:0)

由于使用:regular代替:normal的名称错误标识符,我遇到了此问题。由于没有:regular,它给了我这个错误。