2016-08-04 17 views
0

Hallo Ich baue derzeit eine Website mit Rails und Heroku sowie GoDaddy für einen benutzerdefinierten Domänennamen.Carrierwave mit S3 und Cloudfront zeigt keine Bilder an

Ich benutze Carrierwave mit Nebel, Amazon S3 und habe eine Cloudfront mit meinem Heroku-Domain-Namen als Origin Domain eingerichtet. Derzeit lädt die Seite Bilder sehr langsam, weshalb ich eine Cloudfront einrichte, aber die config-Datei von carrierwave scheint die URLs nicht zu den Cloudfront-Gegenstücken zu ändern. Hier ist meine Carrierwave-Konfigurationsdatei. Ich möchte, dass Benutzer Bilder über Carrierwave hochladen und diese dann mit meiner Cloudfront zurückgeben können.

CarrierWave.configure do |config| 
config.fog_provider = 'fog/aws'      # required 

config.fog_credentials = { 
provider:    'AWS',      # required 
aws_access_key_id:  'acesskey',      #  required 
aws_secret_access_key: 'secretkey',      # required 
region:    'us-east-1',     # optional, defaults to 'us-east-1' 
} 

config.fog_directory = 'directory'       # required 
# config.fog_public  = false # optional, defaults to true 
config.asset_host = 'randomjunk.cloudfront.net' 
config.fog_public = false 
config.fog_attributes = { 'Cache-Control' => "max-age=#{365.day.to_i}" } #  optional, defaults to {} 
end 

Es funktioniert so lange, wie config.fog_public falsch ist, aber wenn ich es ändern config.fog_public = true die Urls sind jetzt korrekt, aber die Bilder werden nicht gefunden. Hat das etwas mit meinen Konfigurationseinstellungen zu tun oder habe ich meine Cloudfront falsch mit Heroku eingerichtet?

Antwort

0

Dies hängt von den Einstellungen ab, die beim ersten Erstellen der Dateien verwendet wurden. Wenn sie mit config.fog_public = false erstellt wurden, werden sie private Dateien sein und der Zugriff erfolgt mit einer speziell signierten URL an s3. Ich denke, der Asset-Host wird nur für Dateien verwendet, die öffentlich sind (also was Sie sehen). Wenn Sie Dateien mit fog_public = true hochladen, dann glaube ich nicht, dass Sie das nicht gefunden sehen würden. Sie können es auch einfach auf true setzen und Bilder erneut speichern, um dieses Attribut zu ändern (ich bin mir bezüglich Details hier weniger sicher, Sie sollten es jedoch in der Lage sein, sie für die Öffentlichkeit zu ändern).

Verwandte Themen