【发布时间】:2011-04-25 08:00:19
【问题描述】:
我正在使用 Paperclip gem 来调整上传照片的大小并将它们存储在 amazon S3 上。在上传请求的生命周期内,我还需要访问调整大小的照片以传递给另一个 Web 服务。
我怀疑在将照片上传到 s3 之前,在 imagemagik 使用的某处创建了一个临时文件。我怎样才能访问它。
【问题讨论】:
标签: ruby-on-rails amazon-s3 heroku paperclip
我正在使用 Paperclip gem 来调整上传照片的大小并将它们存储在 amazon S3 上。在上传请求的生命周期内,我还需要访问调整大小的照片以传递给另一个 Web 服务。
我怀疑在将照片上传到 s3 之前,在 imagemagik 使用的某处创建了一个临时文件。我怎样才能访问它。
【问题讨论】:
标签: ruby-on-rails amazon-s3 heroku paperclip
根据Paperclip readme,它在处理前后调用了一些回调。
对于每个附件:
仅适用于特定附件:
我认为在您的情况下,您应该使用 after 回调之一来获取调整大小的照片。然后您应该可以使用queued_for_write 访问该文件。例如:
class MyModel < ActiveRecord::Base
has_attached_file :photo, :styles => { :small => "300x300>" }
after_post_process :send_photo
private
def send_photo
path = photo.queued_for_write[:small].path
# upload the photo to the ws here
end
end
【讨论】: