我正在尝试将其他模型的头像复制到我的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"
请注意,我正在两个不同的存储桶之间进行复制(如不同的型号代码中所述),所以这可能与它有关吗?
答案 0 :(得分:3)
原来我的某些早期图像存在一些不一致的路径,因此它们与我为Paperclip设置的路径不匹配(因此生成了错误的图像URL)。
所以,问题解决了。
答案 1 :(得分:0)
由于使用:regular
代替:normal
的名称错误标识符,我遇到了此问题。由于没有:regular
,它给了我这个错误。