7

Estoy intentando averiguar cómo configurar CarrierWave para que funcione con Fog y Amazon S3. En S3, tengo un cubo, "bucket1" con carpeta "images". Las cargas funcionan bien. Por ejemplo, una imagen puede cargarse a algo del tipo https://s3.amazonaws.com/bucket1/images/picture/pic1.jpg. Sin embargo, en la vista de programa, cuando llamo al asistente image_url, obtengo https://s3.amazonaws.com/images/picture/pic1.jpg. ¿Que me estoy perdiendo aqui?CarrierWave and Fog, S3 bucket y store_dir configuration

#config/initializers/carrierwave.rb 
CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider    => 'AWS', 
    :aws_access_key_id  => 'aws_key', 
    :aws_secret_access_key => 'aws_secret' 
    } 
    config.fog_directory = 'bucket1' 
    config.fog_host  = 'https://s3.amazonaws.com' 
    config.fog_public  = true 
    config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} 
end 

#app/uploader/image_uploader.rb 
def store_dir 
    "images/#{model.class.to_s.underscore}" 
end 

#app/views/pictures/show.html.erb 
<%= image_tag @picture.image_url if @picture.image? %> 
+0

se que lo hospeda en heroku? – noob

+0

Tengo su propio hosting a través de HostGator (dev) y EC2 (prod) –

Respuesta

4

Retire el config.fog_host

= 'https://s3.amazonaws.com'

configuración

y en su lugar poner

de almacenamiento: niebla

en su cargador. Puede estar anulando la ruta real con la que está proporcionando.

+0

Tenía ambas configuraciones antes. Mi solución fue simplemente eliminar el fog_host. Ahora se carga en https://bucket1.s3.amazonaws.com/images/picture/image_name.jpg. ¡Lo cual funciona bien! –

1

Aunque no directamente relacionado con esta pregunta en particular, se considera que la siguiente información es útil y relacionada.

Si está utilizando enlaces que no son públicas en S3, se puede controlar el TTL de los vínculos con el parámetro de configuración fog_authenticated_url_expiration:

... 
config.fog_public = false 
config.fog_authenticated_url_expiration = 600 # 10 minutes 
... 
Cuestiones relacionadas