Я использую последний aws-sdk для Ruby. Мой файл реки содержит следующую строку для подключения к S3 ведру:RoR AWS-SDK Ошибка при доступе к ведру в Европе
require 'aws-sdk'
...
AWS.config(
:access_key_id => 'xxxxx',
:secret_access_key => 'xxxxx'
)
s3 = AWS::S3.new
object = s3.buckets['bucket_in_ireland'].objects['data.csv']
При обращении к ведру AWS S3 в регионе США, который работает прекрасно. Но получить следующее сообщение об ошибке при обращении к AWS S3 ведра в регионе Ирландии:
AWS::S3::Errorrs::PermanentRedirect: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
С помощью Google я смог найти два решения:
- Put
AWS::S3::DEFAULT_HOST.replace "s3-eu-west-1.amazonaws.com"
в нижней части environment.rb - Набор
:s3_host_name => 's3-eu-west-1.amazonaws.com'
для paperclip По умолчанию
Когда я поместил линию, указанную в (1) в нижней части environment.rb, сообщение об ошибке изменено на следующее:
NameError: uninitialized constant AWS::S3::DEFAULT_HOST
Затем я попытался (2) путем обновления следующего кода в производстве .rb, но это не помогло.
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['S3_BUCKET_NAME'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'],
:s3_host_name => 's3-eu-west-1.amazonaws.com'
}
}
Примечание: попытался также применить это исправление [https://github.com/aws/aws-sdk-ruby/issues/510], но ничего не изменилось после внесения изменений в environment.rb, но ничего не работа.
Любая помощь, пожалуйста ...