Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

616
Views
Cómo verificar si el depósito ya existe en AWS S3

¿Cómo puedo verificar si el depósito ya existe en mi cuenta de AWS S3 usando el SDK de Java?

Usando el siguiente código

 AmazonS3ClientBuilder.defaultClient().doesBucketExistV2(bucketName);

Comprueba la existencia global del depósito y devuelve verdadero si un depósito con este nombre existe globalmente incluso si no soy el propietario de este depósito o no tengo acceso a ese depósito.

Entiendo la intención de hacer este método de esta manera para que nos permita determinar la disponibilidad del nombre del depósito, pero esto no es lo que necesito. Por supuesto, arrojará una excepción de que no tengo acceso a él más tarde, pero regresa indicando que existe el depósito con este nombre.

Quiero verificar si el depósito con el nombre dado existe en mi cuenta S3 para poder realizar operaciones en él.

Una posible solución puede ser list todos los cubos y buscar mi cubo en esa lista devuelta, lo que creo que no es un buen rendimiento (corríjame si me equivoco), ya que puede haber cientos de miles de cubos y búsquedas. en ellos no es eficiente.

¿Cómo puedo determinar si existe un depósito en mi cuenta de S3 que no verifica la existencia global ?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Una solicitud HeadBucket hace el trabajo.

 HeadBucketRequest headBucketRequest = HeadBucketRequest.builder() .bucket(bucketName) .build(); try { s3Client.headBucket(headBucketRequest); return true; } catch (NoSuchBucketException e) { return false; }
over 4 years ago · Santiago Trujillo Report

0

SDK 1.x no tiene un constructor HeadBucketRequest ni una NoSuchBucketException .

En caso de que alguien esté buscando la respuesta usando AWS SDK para Java 1.x , esto funciona:

 private boolean checkAccessToBucket(final String bucketName) { try { final HeadBucketRequest request = new HeadBucketRequest(bucketName); s3Client.headBucket(request); return true; } catch (AmazonServiceException ex) { if (ex.getStatusCode() == 404 | ex.getStatusCode() == 403 || ex.getStatusCode() == 301) { return false; } throw ex; } catch (Exception ex) { LOGGER.error("Cannot check access", ex); throw ex; } }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!