Я использую последнюю версию aws-sdk для Ruby. Мой файл rake содержит следующую строку для подключения к корзине S3:
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 в регионе US все работает отлично. Но возникает следующая ошибка при доступе к корзине 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.
В гугле я нашел два решения:
- Поместите
AWS::S3::DEFAULT_HOST.replace "s3-eu-west-1.amazonaws.com"
внизу файла environment.rb. - Установите
:s3_host_name => 's3-eu-west-1.amazonaws.com'
для настроек скрепки по умолчанию.
Когда я поместил строку, упомянутую в (1), в конец environment.rb, сообщение об ошибке изменилось на следующее:
NameError: uninitialized constant AWS::S3::DEFAULT_HOST
Затем я попытался (2), обновив следующий код в production.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, но ничего не работает.
Любая помощь, пожалуйста...