【Java】AWS S3からファイルのダウンロードを行う手順

この記事は約3分で読めます。

調べていてわからない部分が多かったため、備忘録として残しておきます。

この記事では、JavaとSpring bootを用いて、AWSのS3へファイルを読み書きする方法をまとめます。

コードを張り付けただけではわからない部分も多いと思うので、AWSのSDK導入も一緒に解説します。

 

なお、以下を前提条件としていますので、この記事を読む前に確認ください。

・AWSアカウントを持っている
・認証キー発行済み
・統合開発環境:Eclipse
・Maven
・AWS SDK:v2を利用

AWS SDK for Javaはv1, v2の2種類あります。v2の方が最新なので、この記事ではv2を導入します。v1とv2ではコードの記述がところどころ違う箇所がありますので、注意してください。

v2の場合はimport software.amazon.awssdk.***の形で呼び出します。

 

スポンサーリンク

AWS 認証キーの設定

AWS S3へ接続するために、認証キーを設定します。

認証キーの設定方法はいろいろありますが、今回はSpring Frameworkを利用しているため、application.propertiesファイルから環境変数へ設定します。

これらの環境変数を呼び出す際は、Lombockの@Valueアノテーションを利用します。以下コード参照。

S3認証用クラス

18-25行目:環境変数に登録した認証キーを変数に格納する。

27-31行目:認証キーからCredentialsを作成。認証キーの形式ではS3の認証ができません。

33-39行目:S3を扱うClientを作成。Clientへダウンロードやアップロードのリクエストし、処理してもらいます。

 

スポンサーリンク

S3からファイルをダウンロードする

S3からファイルをダウンロード

上記コードを実行すると、S3の指定バゲット内に格納されたファイルがString型で返ってきます。

今回は、JsonファイルをString型で取得しています。その後gsonライブラリでJson型へ戻して情報を取り扱う的なことをしています。

コードの内容については記事下の参考URLを確認してください。

コード利用時の要点だけ捕捉します。

S3 ファイルダウンロード時の注意点

objectKeyへ、S3のバケット内に保存したファイル名を指定します。

例として、testonionバケットに保存したsample.txtファイルをダウンロードしたいときは、以下のようになります。

s3BucketName=”testonion”

objectKey=”sample.txt”

※”/(スラッシュ)”いらないことに注意してください。

 

 

参考URL

コードはほぼこちらを参考にさせていただきました!

タイトルとURLをコピーしました