我使用delayed_paperclip异步上传图像到S3。但是,它似乎总是首先加载原始图像大小,导致长时间延迟,对于其他图像样式,我得到响应:AWS::S3::Errors::NoSuchKey NoSuchKey
model.rb:
has_attached_file :asset,
:styles => { large: "800x800>", medium: "500x500>", small: "200x200>", thumb: "40x40#" },
:default_url => "/images/:style/missing.png",
:storage => :s3,
:bucket => 'X',
:s3_credentials => {XY}
process_in_background :asset
包含Delayed_Job,并将列添加到模型中:
t.boolean "asset_processing"
谢谢!
我在before_save
方法中重命名附件的文件名以混淆它。在没有delayed_paperclip
的情况下,文件重命名可以正常工作,但是由于延迟的进程,文件重命名不能像预期的那样工作,并且文件的路径被搞砸了,从而产生AWS错误。
我相信delayed_paperclip
上传了原始文件,然后重新获取它以供稍后处理,因为本地存储中的原始文件不再存在。我把这个重命名代码移动到paperclip
的before_post_process
回调,一切都很好。
也许你也在做类似的事情?
感谢您的回复。我的问题是,我遗漏了用于开发目的的worker。
在我的控制台中运行:bundle exec rake jobs:work后,其余的样式正在加载。