Cambios en el análisis de URI de Amazon S3 de la versión 1 a la 2 - AWS SDK for Java 2.x

Cambios en el análisis de URI de Amazon S3 de la versión 1 a la 2

En este tema se detallan los cambios en el análisis de URI de Amazon S3 de la versión 1 (v1) a la versión 2 (v2).

Cambios de alto nivel

Para empezar a analizar un URI de S3 en la v1, cree una instancia de un AmazonS3URI utilizando un constructor. En la v2, llame a parseUri() en una instancia de S3Utilities para devolver un S3URI.

Cambio v1 v2

dependencias Maven

<dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-bom</artifactId> <version>1.12.5871</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>s3</artifactId> </dependency> </dependencies>
<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.27.212</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> </dependency> </dependencies>
Package name com.amazonaws.services.s3 software.amazon.awssdk.services.s3
Nombres de clase AmazonS3URI S3URI

1 Última versión. 2 Última versión.

Cambios en la API

Comportamiento v1 v2
Analizar un URI de S3.
URI uri = URI.create( "https://s3.amazonaws.com"); AmazonS3Uri s3Uri = new AmazonS3URI(uri, false);
S3Client s3Client = S3Client.create(); S3Utilities s3Utilities = s3Client.utilities(); S3Uri s3Uri = s3Utilities.parseUri(uri);
Recuperar el nombre del bucket de un URI de S3.
String bucket = s3Uri.getBucket();
Optional<String> bucket = s3Uri.bucket();
Recuperar la clave.
String key = s3Uri.getKey();
Optional<String> key = s3Uri.key();
Recuperar la región.
String region = s3Uri.getRegion();
Optional<Region> region = s3Uri.region(); String region; if (s3Uri.region().isPresent()) { region = s3Uri.region().get().id(); }

Recuperar si el URI de S3 es de estilo de ruta.

boolean isPathStyle = s3Uri.isPathStyle();
boolean isPathStyle = s3Uri.isPathStyle();
Recuperar el ID de versión.
String versionId = s3Uri.getVersionId();
Optional<String> versionId = s3Uri.firstMatchingRawQueryParameter("versionId");
Recuperar los parámetros de consulta. N/A
Map<String, List<String>> queryParams = s3Uri.rawQueryParameters();

Cambios de comportamiento

Codificación de URL

La v1 ofrece la opción de pasar una marca para especificar si el URI debe estar codificado como URL. El valor predeterminado es true.

En la v2 no se admite codificación de URL. Si trabaja con claves de objeto o parámetros de consulta que tienen caracteres reservados o no seguros, debe codificarlos mediante URL. Por ejemplo, debe reemplazar un espacio en blanco " " por %20.