Я пытаюсь загрузить на 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