我正在将我的 rails 应用程序从 2.3 升级到 3.2,但我遇到了回形针问题。我的应用以前使用的是回形针 v2.3.5,现在我使用的是带有回形针 v3.3.1 的 rails 3.0.20
当我尝试将头像上传到 S3 时会出现问题。看起来回形针在将其发送到 S3 之前转义了路径,但是当我询问特定样式的 url 时,该 url 使用路径的未转义版本,这会导致 S3 出现“NoSuchKey”错误(更像404 未找到)
在我的模型中,我有
Paperclip.interpolates :last_modified do |attachment, style|
attachment.instance.updated_at.to_i
end
:path => "folder/:id/:style.:extension?:last_modified",
:url => ":s3_domain_url",
所以我的应用程序的旧版本使用来自 S3 的 url,例如:
http://my-bucket.s3.amazonaws.com/folder/123/thumbnail.png?123456789
但是现在,每次我上传头像时,S3 都会像这样存储 url:
http://my-bucket.s3.amazonaws.com/folder/123/thumbnail.png%3F123456789
并向我的模型询问缩略图样式的 url,将返回:
http://my-bucket.s3.amazonaws.com/folder/123/thumbnail.png?123456789
S3 找不到。
我知道这似乎是一个容易解决的问题,但我主要担心的是生产应用程序有很多用户有很多图片,更新他们所有的图片是一项微妙的任务,手动转义问号不是解决方案.