1. ホーム
  2. ruby-on-rails

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

2022-02-02 23:39:12

質問事項

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 というエラーが表示されます。

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

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

どうすればいいですか?

このバケットは、us-west-2 ではない別のリージョンで作成された可能性が高いようです。このバケツは、私が見た中では唯一 "あなたがアクセスしようとしているバケツは、指定されたエンドポイントを使用してアドレスされている必要があります。今後のリクエストはすべてこのエンドポイントに送ってください。

<ブロッククオート

USスタンダードは us-east-1