目次
はじめに
Java SDK(AWS SDK for Java 1.11)でAmazon S3からファイルをダウンロードする方法を紹介します。
事前準備
Amazon S3を使うには「aws-java-sdk-s3」を「pom.xml」もしくは「build.gradle」に追加します。今回の例ではpom.xmlを使用します。
<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>1.11.828</version> </dependency>
Amazon S3からファイルをダウンロードする
スポンサーリンク
ダウンロードしたファイルをローカルに保存する
Amazon S3からダウンロードしたファイルをローカル(サーバ)に保存する方法は以下です。
「getObject」にリクエストパラメータ(S3のバケット名、ダウンロードするファイルのパス(キー名))と、ファイルの保存先(File)を指定します。
/**
* [Amazon S3]ファイルダウンロード
* @return ダウンロードしたファイル
*/
public File getObject() {
AWSCredentials credentials = new BasicAWSCredentials("アクセスキー","シークレットキー");
// S3クライアントの生成
AmazonS3 s3Client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.AP_NORTHEAST_1)
.build();
// バケット名とS3のファイルパス(キー値)を指定
GetObjectRequest request = new GetObjectRequest("bucketName", "dir/sample.png");
// ファイル保存先
File file = new File("c:/temp/sample.png");
// ファイルダウンロード
s3Client.getObject(request, file);
return file;
}ダウンロードしたファイル(バイナリデータ)をBase64に変換する
Amazon S3からダウンロードしたファイルをローカルに保存するのではなく、バイナリデータで取得する方法は以下です。
今回の例では、更にバイナリデータをBase64の文字列に変換しています。
Amazon S3 → サーバ → クライアントとサーバを経由する場合、「サーバ - クライアント」間のやり取りをBase64で行う場合があります。
このような場合は、Amazon S3からダウンロードしたファイルをサーバに保存するのではなく、バイナリデータで取得し、Base64に変換することで手間が省けます。
/**
* [Amazon S3]ファイルダウンロード
* @return ダウンロードしたファイル(Base64)
*/
public String getObjectBase64() {
AWSCredentials credentials = new BasicAWSCredentials("アクセスキー","シークレットキー");
// S3クライアントの生成
AmazonS3 s3Client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.AP_NORTHEAST_1)
.build();
// バケット名とS3のファイルパス(キー値)を指定
GetObjectRequest request = new GetObjectRequest("bucketName", "dir/sample.png");
// ファイルダウンロード
S3Object object = s3Client.getObject(request);
String fileBase64 = null;
try {
// バイナリデータをBase64に変換
byte[] encode = Base64.getEncoder().encode(IOUtils.toByteArray(object.getObjectContent()));
fileBase64 = new String(encode);
} catch (IOException e) {
// Base64への変換失敗
}
return fileBase64;
}終わりに
本記事では、Amazon S3からファイルをダウンロードする方法を紹介しました。
次回は、【Amazon Cognito】JavaScriptのSKDでログイン処理を実装する方法を紹介します。
[AWS 関連記事]
- Amazon Cognito ユーザープールの使い方
- Amazon Cognito IDプールの使い方
- Amazon S3へファイルをアップロードする方法
- 【Amazon Cognito】getSessionでトークン情報を再取得する方法
- 【Amazon Cognito】changePasswordでパスワードを変更する方法
helpful
この記事は役に立ちましたか?
