2013-06-23 29 views
5

Tôi đã theo các hướng dẫn triển khai từ Carrierwave với làm thế nào để triển khai trên Heroku cho một ứng dụng Rails sử dụng Amazon S3:Cấu hình cho Carrierwave với Amazon S3, lưu trữ trên Heroku

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

Tôi đã thêm dòng bổ sung vào config.ru và tạo tệp config/initializers/carrierwave.rb, nhưng không thành công.

Dưới đây là bộ khởi tạo sóng mang, với các phím được chỉnh sửa lại.

Đây có phải là thiết lập chính xác không?

Tôi còn cần phải làm gì nữa?

Bất kỳ hướng dẫn từng bước nào để giúp tôi triển khai điều này?

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 

Trả lời

7

Bạn đã tạo tệp trình tải lên chưa?

rails generate uploader Avatar

này sẽ tạo ra một tập tin như thế này: app/uploaders/avatar_uploader.rb lớp AvatarUploader < CarrierWave :: Uploader :: Base lưu trữ: nộp cuối thông tin

More https://github.com/carrierwaveuploader/carrierwave trong bắt đầu.

Đây là tác phẩm của tôi 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 

Tôi cũng khuyên bạn này railcasts:

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

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

Các vấn đề liên quan