2012-05-03 24 views
7

aquí estaba mi situación.everytime push to heroku, las imágenes no se muestran, clip

Estaba usando un clip para que el usuario cargue imágenes. Le fue bien y todo estuvo bien. Luego, lo empujé a Heroku. Para el momento, puedo ver todas mis imágenes que solo subieron los usuarios. Sin embargo, cada vez que hago un nuevo commit y vuelvo a heroku, todas mis imágenes anteriores desaparecen. Parece que ya no tienes el archivo, no puedes cargarlo.

Entonces, aquí lo que pensé: ¿Cada vez que presiono al servidor heroku, el archivo de imágenes que estaba en local se cargó en el servidor heroku?

Investigué mi problema y no entiendo realmente lo que realmente dijeron sobre heroku y no sé si es el mismo problema conmigo.

Heroku tiene un sistema de archivos de solo lectura. Eso significa que Paperclip no puede guardar los archivos cargados en ningún lugar dentro de Heroku.

Si desea cargar archivos en una aplicación alojada en Heroku, debe almacenar los archivos como blobs binarios en su base de datos o debe usar un servicio por separado para almacenar los archivos. Si está buscando un servicio separado, Paperclip tiene soporte integrado para integrarse con Amazon S3.

Descubrí que Amazon S3 necesita una tarjeta de crédito para registrarse, si no tengo tarjeta de crédito, ¿no puedo usar sus servicios?

Cualquier consejos detalle y explicación se aprecia que .¡AGRADECE

Respuesta

5

Amazon no es un dispositivo de manos libres, debe dar su número de tarjeta de crédito para utilizarlo. Sin embargo, usted paga solo lo que usa, pero no es costoso. Por ejemplo, para mis sitios web, el mes pasado pagué $ 2.46 por 15 Gb de almacenamiento y pagué $ 1.90 por 16 Gb de transferencia de datos.

Para utilizar S3 con un clip, es necesario agregar gem 'aws-s3' a su Gemfile

continuación, tiene que añadir config/s3.yml sus credenciales de activos, por ejemplo:

production: 
    access_key_id: AAAAAAAAAAAAAAAAAA 
    secret_access_key: BBBBBBBBBBBBBBBBBBBBBBBBBBB 
    bucket: assets.my-bucket 

Entonces tengo un modelo que almacenan mi activos, por ejemplo:

class Asset 
    has_attached_file :asset, 
    :styles => { :thumb => "60x60#", :large => "700x330#"}, 
    :storage => :s3, 
    :s3_credentials => "#{Rails.root}/config/s3.yml", 
    :path => "/images/:id/:style.:extension" 
    validates_attachment_content_type :asset, :content_type => ['image/gif', 'image/jpeg', 'image/png', 'image/x-ms-bmp'] 
end 

espero que ayude

+0

yup, sabía de esto, ¿me puede dar más problemas sobre mi problema que estoy enfrentando? ¿Se debe resolver para usar otro servicio como Amazon s3? –

+0

Puede usar el wathever que desee en lugar de S3 pero no puede cargar sus activos en heroku. Entonces puede usar un servidor dedicado u otro sistema de almacenamiento remoto, pero probablemente deba pagar por esto. –

+0

oic ... entonces eso significa que cada vez que presiono a heroku, la imagen que cargué en el servidor heroku se verá afectada? –

Cuestiones relacionadas