回形针刷新缩略图不适用于S3

时间:2010-04-16 22:29:00

标签: ruby refresh paperclip

我将Paperclip安装为gem,我正在尝试刷新图像的缩略图大小。我正在运行这个命令:

  

rake paperclip:refresh:缩略图CLASS = User

并收到此错误:

...佣金流产! 指定的密钥不存在。

有什么想法吗?

芬兰

2 个答案:

答案 0 :(得分:0)

User模型的实例没有关联的缩略图。 IE浏览器。用户尚未上传缩略图。在尝试检索附件之前, reprocess! 方法不会检查每个模型实例是否存在缩略图。因此,S3返回:

NoSuchKey The specified key does not exist.

或者可能是由于S3附件处理中的错误:

http://github.com/tomafro/paperclip/commit/64ae23ba01885e22cc69bf1264f339784ce32fc9

答案 1 :(得分:0)

在将附件设置更改为S3之前,很可能是您上传了附件。例如,如果你:

1)使用配置集上载附件以使用文件系统进行存储 2)更改了您的设置以使用S3 3)上传更多图片 4)调用rake paperclip:refresh:缩略图

...您将在步骤1中上传的所有图片出现错误。解决方案是直接浏览并清除所有旧附件。你可以通过调用

来做到这一点

user.attachment.clear

唯一的问题是它仍会尝试从S3中删除那些不存在的图像,因此要解决此问题,您必须将:preserve_files => true选项添加到has_attached_file选项中。 1}}在开始清除旧附件之前。确保在完成后删除:preserve_files => true