View a markdown version of this page

Comprobación de si existe un objeto - Amazon Simple Storage Service

Comprobación de si existe un objeto

El ejemplo de código siguiente muestra cómo comprobar si existe un objeto.

Java
SDK para Java 2.x
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

Puede usar el siguiente método doesObjectExist en sustitución del método AmazonS3Client#doesObjectExist(String, String) del SDK para Java V1.

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; } } }
  • Para obtener información acerca de la API, consulte HeadObject en la Referencia de la API de AWS SDK for Java 2.x.

Para obtener una lista completa de las guías para desarrolladores de AWS SDK y ejemplos de código, consulte Desarrollo con Amazon S3 mediante los SDK de AWS. En este tema también se incluye información sobre cómo empezar a utilizar el SDK y detalles sobre sus versiones anteriores.