Я пытаюсь удалить загруженные файлы изображений с помощью AWS-SDK-Core Ruby Gem.
У меня есть следующий код:
require 'aws-sdk-core'
def pull_picture(picture)
Aws.config = {
:access_key_id => ENV["AWS_ACCESS_KEY_ID"],
:secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"],
:region => 'us-west-2'
}
s3 = Aws::S3::Client.new
test = s3.get_object(
:bucket => ENV["AWS_S3_BUCKET"],
:key => picture.image_url.split('/')[-2],
)
end
Однако я получаю следующую ошибку:
Область, к которой вы пытаетесь получить доступ, должна быть адресована с использованием указанной конечной точки. Пожалуйста, отправляйте все будущие запросы на эту конечную точку.
Я знаю, что регион правильный, потому что, если я изменю его на us-east-1
, появится следующая ошибка:
Указанный ключ не существует.
Что я здесь не так делаю?
ruby-on-rails
ruby
amazon-web-services
amazon-s3
user3575214
источник
источник
Ответы:
Кажется вероятным, что это ведро было создано в другом регионе, т.е. не в us-west-2. Это единственный раз, когда я видел «Область, к которой вы пытаетесь получить доступ, должна быть адресована с использованием указанной конечной точки. Пожалуйста, отправляйте все будущие запросы этой конечной точке».
источник
ENV["AWS_REGION"]
правильное значение (например"us-east-1"
) для корзины перед инициализацией клиента