- 開発技術
- スマホ・IoT
JavaでS3オブジェクトの存在チェックをする方法
- #Java

JavaでS3オブジェクト(ファイル、フォルダ)の存在チェックをする方法をまとめました。
S3クライアントを作成
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
まず、JavaからS3にアクセスするためにクライアントを作成します。
クライアントを作成するためには「アクセスID」、「シークレットアクセスキー」、リージョン名」が必要です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; // S3クライアント作成 private AmazonS3 getS3Client { AWSCredentials credentials = new BasicAWSCredentials(“アクセスID”, “シークレットアクセスキー”); s3Client = AmazonS3ClientBuilder.standard().withCredentials( new AWSStaticCredentialsProvider(credentials) ).withRegion(Regions.fromName(“リージョン名”)).build(); return s3Client; } |
S3オブジェクトの存在チェックに使用するメソッド
ファイルもフォルダもS3上ではkeyとvalueを持つオブジェクトなので、存在チェックには共通のメソッドdoesObjectExistメソッドを使用します。
doesObjectExist(“バケット名”, “オブジェクト名”)で対象のオブジェクトが存在すれば、trueを返し、存在しなければfalseを返します。
S3上のファイルの存在チェック
doesObjectExistメソッドを使用して、S3上のファイルの存在チェックを行います。
例としてバケットtest-bucketにファイルtest-fileが存在したとします。
以下のようなコードでtrueが出力されます。
1 2 |
// ファイルの存在チェック 出力:true System.out.println(getS3Client().doesObjectExist(“test-bucket”, “test-file")); |
S3上のフォルダの存在チェック
doesObjectExistメソッドを使用して、S3上フォルダの存在チェックを行いますが、フォルダの存在チェックはオブジェクト名の指定時に注意が必要です。
例としてバケットtest-bucketにフォルダtest-folderが存在したとします。
以下のようなコードだとfalseが出力されます。
1 2 |
// フォルダの存在チェック 出力:false System.out.println(getS3Client().doesObjectExist(“test-bucket”, “test-folder")); |
“test-folder”だとオブジェクトとして認識されないので以下のコードのように、スラッシュを付けることで、trueが出力されるようになります。
1 2 |
// フォルダの存在チェック 出力:true System.out.println(getS3Client().doesObjectExist(“test-bucket”, “test-folder/")); |
存在チェック以外にもファイルアップロード、ダウンロードなどJavaでS3オブジェクトを操作する方法がたくさんあるので、興味があれば調べてみてください。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>