AWS SDK for Java でS3のURIをパースする
渡辺です。
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クラス便利ですね!