AWS SDK for Java でS3のURIをパースする

2017.05.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

渡辺です。

S3オブジェクトのURIは次のようなフォーマットです。

https://s3-ap-northeast-1.amazonaws.com/bucket-name/path/to/key

ところが、SDKを利用する場合、このようなURIからリージョン、バケット名などを取得する必要があります。 頑張ってパースせずに、com.amazonaws.services.s3.AmazonS3URIクラスを利用しましょう。

AmazonS3URI

AmazonS3URIクラスは、名前の通りS3のURIを表すクラスです。 コンストラクタにURIを与えれば、各種プロパティにアクセス可能です。

String uri = "https://s3-ap-northeast-1.amazonaws.com/bucket-name/path/to/key";
AmazonS3URI s3uri = new AmazonS3URI(uri);
System.out.println(s3uri.getRegion()); // => ap-northeast-1
System.out.println(s3uri.getBucket()); // => bucket-name
System.out.println(s3uri.getKey()); // => path/to/key

まとめ

AmazonS3URIクラス便利ですね!