CarrierWave und Nebel, S3-bucket und store_dir Konfiguration
Ich versuche, herauszufinden, wie, um das setup CarrierWave arbeiten mit Nebel und Amazon S3. Auf S3, ich habe einen Eimer, "bucket1" mit Ordner "Bilder". Uploads funktionieren. Zum Beispiel, ein Bild kann hochgeladen werden, um etwas von der form https://s3.amazonaws.com/bucket1/images/picture/pic1.jpg. Jedoch in der Ansicht anzeigen, wenn ich das Image: URL helper, bekomme ich https://s3.amazonaws.com/images/picture/pic1.jpg. Was vermisse ich hier?
#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? %>
- hosten Sie Sie auf heroku?
- Ich bewirte es besitzen, über HostGator(dev) & EC2 (prod)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, das entfernen des
config.fog_host = 'https://s3.amazonaws.com'
Konfiguration und stattdessen
Lagerung :Nebel
in Ihrer uploader. Es könnte sein, überschreiben Sie den tatsächlichen Pfad mit der Sie uns zur Verfügung stellen.
Obwohl nicht direkt relevant für diese Frage, es fühlen, dass die folgenden Informationen im Zusammenhang und hilfsbereit.
Wenn Sie über nicht-öffentliche links in S3 ist, können Sie die TTL-links mit der
fog_authenticated_url_expiration
Konfiguration parameter: