7

Sto cercando di capire come installare CarrierWave per funzionare con Fog e Amazon S3. Su S3, ho un bucket, "bucket1" con cartella "images". I caricamenti funzionano bene. Ad esempio, un'immagine potrebbe essere caricata su qualcosa del modulo https://s3.amazonaws.com/bucket1/images/picture/pic1.jpg. Tuttavia, nella visualizzazione dello spettacolo, quando chiamo l'helper image_url, ottengo https://s3.amazonaws.com/images/picture/pic1.jpg. Cosa mi manca qui?CarrierWave and Fog, configurazione bucket S3 e store_dir

#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

stai ospitando su Heroku? – noob

+0

Lo sto ospitando tramite HostGator (dev) e EC2 (prod) –

risposta

4

Provare a rimuovere il

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

configurazione e invece mettere

stoccaggio: nebbia

nella vostra uploader. Potrebbe ignorare il percorso effettivo con quello che stai fornendo.

+0

Avevo già entrambe le configurazioni. La mia correzione era solo per rimuovere il fog_host. Ora viene caricato su https://bucket1.s3.amazonaws.com/images/picture/image_name.jpg. Che funziona bene! –

1

Sebbene non sia direttamente pertinente a questa particolare domanda, ritiene che le seguenti informazioni siano correlate e utili.

Se si utilizza collegamenti non pubblici in S3, è possibile controllare il TTL di quei legami con il parametro di configurazione fog_authenticated_url_expiration:

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