2016-10-11 8 views
0

Я пытаюсь загрузить на S3 с Carrierwave и Fog-Aws, и у меня возникла проблема. По какой-то причине, туман пытается загрузить на моем ведре наFog with Carrierwave загрузите в S3 путь загрузки по умолчанию недействительным

https://{bucket-name}.s3.amazonaws.com

Но, когда я получить доступ к файлу непосредственно из AWS, формат URL выглядит так:

https://s3-{region}.amazonaws.com/{bucket-name

Всякий раз Я пытаюсь использовать тот путь, который туман использует, он дает мне следующую ошибку:

The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

Так что мой вопрос, есть ли способ

A) Изменение формата конечной точки на S3 соответствует тому, что туман ожидает, что это будет, или

B) Изменение настройки для тумана использовать это разные формат вместо этого?

Для справки:

Я использую Carrierwave версии 1.0, туман-AWS версии 0.11.0

Вот мой carrierwave.rb файл:

if Rails.env.test? or Rails.env.development? 
    CarrierWave.configure do |config| 
    config.storage = :file 
    config.root = "#{Rails.root}/tmp" 
    config.cache_dir = "#{Rails.root}/tmp/images" 
    end 
else 
    CarrierWave.configure do |config| 
    config.fog_provider = 'fog/aws' 
    config.fog_credentials = { 
     :provider => 'AWS', 
     :aws_access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
     :aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], 
     :region => ENV['AWS_S3_REGION'], 
     :endpoint => "https://s3-#{ENV['AWS_S3_REGION']}.amazonaws.com/#{ENV['AWS_S3_BUCKET_NAME']}" 
    } 
    config.storage = :fog 
    config.fog_directory = ENV['AWS_S3_BUCKET_NAME'] 
    config.fog_public = false 
    end 
end 

ответ

0

Я считаю: регион является в этом случае вам нужно будет изменить только настройку. Пока он установлен точно (и не является областью us-east-1 по умолчанию), он должен изменить хост, как вы пожелаете.

Это, я бы не ожидал, что также потребуется изменить конечную точку, как это. Он будет установлен, если вам понадобится использовать материал CNAME, который не звучит так, как вам нужно. Опуская это, в то время как настройка области, надеюсь, вы получите то, что вам нужно.