¿Qué hace aws-sdk-java-v2-s3?
Proporciona patrones y ejemplos de Amazon S3 utilizando AWS SDK para Java 2.x. Útil al trabajar con buckets S3, subir/descargar objetos, cargas multiparte, URLs prefirmadas, S3 Transfer Manager, operaciones con objetos o configuraciones específicas de S3.
Características principales
- Gestión de buckets: crear, listar, eliminar y configurar buckets S3.
- Operaciones con objetos: subir, descargar, copiar, eliminar y listar objetos.
- Cargas multiparte: realizar cargas de archivos grandes en partes.
- URLs prefirmadas: generar URLs con tiempo limitado para acceso seguro.
- S3 Transfer Manager: transferencias de alto rendimiento con gestión de concurrencia.
- Configuraciones avanzadas: cifrado, políticas de bucket, versionado y ciclo de vida.
Uso básico
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.*;
import software.amazon.awssdk.regions.Region;
S3Client s3 = S3Client.builder()
.region(Region.US_EAST_1)
.build();
// Listar buckets
ListBucketsResponse response = s3.listBuckets();
response.buckets().forEach(bucket ->
System.out.println("Bucket: " + bucket.name()));
Subir un objeto
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
PutObjectRequest request = PutObjectRequest.builder()
.bucket("mi-bucket")
.key("mi-archivo.txt")
.build();
s3.putObject(request, RequestBody.fromString("Contenido del archivo"));
URLs prefirmadas
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
import software.amazon.awssdk.services.s3.presigner.S3Presigner;
import software.amazon.awssdk.services.s3.presigner.model.GetObjectPresignRequest;
import java.time.Duration;
S3Presigner presigner = S3Presigner.create();
GetObjectPresignRequest presignRequest = GetObjectPresignRequest.builder()
.signatureDuration(Duration.ofMinutes(10))
.getObjectRequest(GetObjectRequest.builder()
.bucket("mi-bucket")
.key("mi-archivo.txt")
.build())
.build();
String url = presigner.presignGetObject(presignRequest).url().toString();
Recursos adicionales
Notas
- Asegúrate de tener las credenciales de AWS configuradas (variables de entorno
AWS_ACCESS_KEY_IDyAWS_SECRET_ACCESS_KEY, o perfil de IAM). - Dependencia Maven para AWS SDK S3:
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>2.20.0</version>
</dependency>