AWS S3: アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレス指定する必要があります。質問する

AWS S3: アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレス指定する必要があります。質問する

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リージョンを に変更すると次のエラーが表示されるので、リージョンが正しいことがわかります。

指定されたキーは存在しません。

ここで何が間違っているのでしょうか?

ベストアンサー1

このバケットは、us-west-2 ではなく、別のリージョンで作成された可能性があります。「アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレス指定する必要があります。今後のすべてのリクエストをこのエンドポイントに送信してください。」というメッセージが表示されたのは、このときだけです。

米国標準はus-east-1

おすすめ記事