8

異なるリージョンのバケットにアクセスする可能性がある Amazon S3 クライアントを作成しています。当社の IT 部門は HTTP の送信に関してかなり厳格であり、新しいバケットごとにファイアウォールを変更する必要がないように、このクライアントにはパス スタイルのアクセスを使用したいと考えています。

クライアントは Java SDK v1.4.4.2 を使用しています。テストとして、私はシンガポールでバケットを作成し、オブジェクトを一覧表示する S3 単体テストを実行し、パス スタイルのアクセスを使用するように変更しました。

AmazonS3 client = new AmazonS3Client(environ);
client.setS3ClientOptions(new S3ClientOptions().withPathStyleAccess(true));

このバージョンのクライアントで単体テストを実行すると、すべての S3 アクセスが失敗し、正しいエンドポイントを設定する必要があるというエラーが表示されます。

私の質問は、バケットのリージョンを検索してクライアントに設定するロジックを追加する必要があるかどうかです。それとも、SDK を単独で実行するように設定できますか? バケットの場所を検索する機能がそこにあるので、SDK はこれを自動的に行うことができるはずです。

副次的な問題として、パス形式のアクセスを使用する際に特定のパフォーマンスの問題はありますか? バケットの場所をまだ知らない場合は、クエリを実行するのに余分な往復が必要だと思います。

4

2 に答える 2