Доступ к временному файлу скрепки при использовании опции хранения s3 на heroku - PullRequest
9 голосов
/ 14 октября 2010

Я использую драгоценный камень Paperclip, чтобы изменить размер загружаемых фотографий и сохранить их на amazon S3.Мне нужен доступ к фотографии с измененным размером, чтобы она также передавалась другому веб-сервису в течение жизненного цикла запроса на загрузку.

Я подозреваю, что временный файл создан где-то, где imagemagik использует, прежде чем фотография будет загружена в s3.Как я могу получить к нему доступ.

1 Ответ

13 голосов
/ 14 октября 2010

Согласно Readme Paperclip существует несколько обратных вызовов, которые он вызывает после и до обработки.

Для каждого вложения:

  • before_post_process
  • after_post_process

Только для определенного вложения:

  • before_ [вложения] _post_process
  • after_ [attachment] _post_process

Я думаю, что в вашем случае вы должны использовать один из 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
...