2010-10-14 10 views
9

Estoy usando la joya Paperclip para cambiar el tamaño de subir fotos y almacenarlas en Amazon S3. Necesito acceso a la foto redimensionada para pasarla también a otro servicio web, durante el ciclo de vida de la solicitud de carga.Acceso al archivo temporal del clip cuando se usa la opción de almacenamiento s3 en heroku

Sospecho que hay un archivo temporal creado en alguna parte que la imagenmagma utiliza antes de que la foto se cargue en s3. ¿Cómo puedo acceder a él?

Respuesta

13

De acuerdo con Paperclip readme hay algunas devoluciones de llamada que llama después y antes del procesamiento.

Para cada adjunto:

  • before_post_process
  • after_post_process

Sólo para un accesorio de específica:

  • before_ _post_process [archivo adjunto]
  • after_ [Anexo] _post_process

creo que en su caso se debe utilizar uno de los after devoluciones de llamada para conseguir la foto redimensionada. Entonces debería poder acceder al archivo con queued_for_write. Por ejemplo:

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 
+1

Gracias Matt, esto se ve como lo que estaba buscando. La pieza que cosí que faltaba era el método queued_for_write. Lo intentaré mañana e informaré. –

+0

Funcionó perfectamente. ¡Gracias! –

Cuestiones relacionadas