目次
はじめに
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
この記事は役に立ちましたか?