View a markdown version of this page

オブジェクトが存在するかどうかを確認する - AWS SDK コードの例

Doc AWS SDK Examples GitHub リポジトリには、他にも SDK の例があります。 AWS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

オブジェクトが存在するかどうかを確認する

次のコード例は、オブジェクトが存在するかどうかを確認する方法を示しています。

Java
SDK for Java 2.x
注記

GitHub には、その他のリソースもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

SDK for Java V1 AmazonS3Client#doesObjectExist(String, String) doesObjectExistメソッドの代わりに、次のメソッドを使用できます。

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.HeadObjectRequest; import software.amazon.awssdk.services.s3.model.NoSuchKeyException; import software.amazon.awssdk.utils.Validate; public class DoesObjectExist { private static final Logger logger = LoggerFactory.getLogger(DoesObjectExist.class); public static void main(String[] args) { DoesObjectExist doesObjectExist = new DoesObjectExist(); final S3Client s3SyncClient = S3Client.builder().build(); final String bucketName = "amzn-s3-demo-bucket"; // Replace with your bucket name. final String key = "my-key"; // Replace with your object key. boolean exists = doesObjectExist.doesObjectExist(bucketName, key, s3SyncClient); logger.info("Object exists: {}", exists); } /** * Checks if the specified object exists in the specified bucket. * <p> * Internally this method uses the * <a href="https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Client.html#headObject(java.util.function.Consumer)">S3Client.headObject</a> * operation to determine whether the object exists. * <p> * This method is equivalent to the AWS SDK for Java V1's * <a href="https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3Client.html#doesObjectExist-java.lang.String-java.lang.String-">AmazonS3Client#doesObjectExist(String, String)</a>. * <p> * <b>Note:</b> This method returns {@code false} only when S3 responds with 404 (NoSuchKey). If the caller * does not have {@code s3:ListBucket} permission on the bucket, S3 may return 403 instead of 404 for * non-existent objects, which will be thrown as an exception. * * @param bucketName The name of the bucket containing the object. * @param key The key of the object to check. * @param s3SyncClient An {@code S3Client} instance. * @return {@code true} if the object exists; {@code false} if it does not exist. */ public boolean doesObjectExist(String bucketName, String key, S3Client s3SyncClient) { try { Validate.notEmpty(bucketName, "The bucket name must not be null or an empty string.", ""); Validate.notEmpty(key, "The object key must not be null or an empty string.", ""); s3SyncClient.headObject(HeadObjectRequest.builder() .bucket(bucketName) .key(key) .build()); return true; } catch (NoSuchKeyException e) { return false; } } }
  • API の詳細については、「AWS SDK for Java 2.x API リファレンス」の「HeadObject」を参照してください。