2013-12-19 2 views
2

Я настроил Carrierwave + Fog для работы с Amazon S3. Проблема в том, что все создано в общей папке моего проекта и не загружается на S3. Большой палец и директория в порядке, это только место размещения изображения, которое не работает.Carrierwave загружает изображение локально, а не в S3

Мой загрузчиком:

class ImageUploader < CarrierWave::Uploader::Base 
    include CarrierWave::MiniMagick 
    storage :fog 
    def store_dir 
     "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
    version :thumb do 
     process :resize_to_fit => [200, 200] 
    end 
    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 
end 

fog.rb

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider => 'AWS', 
    :aws_access_key_id => 'xxx', 
    :aws_secret_access_key => 'yyy', 
    :region => 'eu-west-1' 
    } 

    config.fog_directory = 'your_bucket_here' 
    config.fog_public = true 
    config.fog_attributes = {'Cache-Control' => 'max-age=315576000'} 
end 

Класс, который использует его:

class Image < ActiveRecord::Base 
    belongs_to :product 
    mount_uploader :remote_file, ImageUploader 
end 

И код контроллера:

i = Image.new 
    i.save 
    i.remote_file = params[:image] 

    render :json => {:response => i.remote_file.url} 

Отклик: { "ответ": "/ загрузки/TMP/1387464252-27678-6793/logo11w.png"}

И образ создается внутри общественной директории проекта рельсы.

Спасибо!

ответ

Смежные вопросы