2013-06-23 14 views
5

Ich habe die Bereitstellung gefolgt Anweisungen von Carrierwave mit, wie auf Heroku für eine Rails-Anwendung unter Verwendung von Amazon S3 zu implementieren:Konfiguration für Carrierwave mit Amazon S3, gehostet auf Heroku

https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Make-Carrierwave-work-on-Heroku

ich hinzugefügt habe die zusätzliche Zeile zu config.ru und erstellt die Datei config/initializers/carrierwave.rb, aber keinen Erfolg.

Unten ist der Carrierwave-Initialisierer mit Tasten redacted.

Ist das korrekt eingerichtet?

Was muss ich noch tun?

Irgendwelche Schritt-für-Schritt-Anleitungen, um mir bei der Implementierung zu helfen?

CarrierWave.configure do |config| 
config.fog_credentials = { 
:provider    => 'AWS',      # required 
:aws_access_key_id  => REDACTED,      # required 
:aws_secret_access_key => REDACTED,      # required 
:region     => 'eu-west-1',     # optional, defaults to 'us-east-1' 
:host     => 's3.example.com',    # optional, defaults to nil 
:endpoint    => 'https://s3.example.com:8080' # optional, defaults to nil 
} 
config.fog_directory = 'myawsbucket'     # required 
config.fog_public  = false         # optional, defaults to true 
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {} 
end 

Antwort

7

Haben Sie die Uploader-Datei erstellt?

rails generate uploader Avatar

Diese eine Datei wie folgt generieren: app/uploaders/avatar_uploader.rb Klasse AvatarUploader < CarrierWave :: Uploader :: Base Lagerung: https://github.com/carrierwaveuploader/carrierwave Ende

Mehr Info-Datei in die ersten Schritte.

Dies sind meine Dateien config/initializers/carrierwave.rb

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider    => 'AWS', 
    :aws_access_key_id  => 'REDACTED', 
    :aws_secret_access_key => 'REDACTED' 
    } 
    config.fog_directory = "myawsbucket" 
end 

app/uploaders/amazon_uploader.rb

class AmazonUploader < CarrierWave::Uploader::Base 
    include CarrierWave::MiniMagick 

    include Sprockets::Helpers::RailsHelper 
    include Sprockets::Helpers::IsolatedHelper 

    storage :fog 

    include CarrierWave::MimeTypes 
    process :set_content_type 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    version :user_thumb do 
    process :resize_to_limit => [200, 200] 
    end 

    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 
end 

Ich empfehle Ihnen auch diese railcasts:

http://railscasts.com/episodes/253-carrierwave-file-uploads

http://railscasts.com/episodes/383-uploading-to-amazon-s3

Verwandte Themen