

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Migrer les téléchargements d'URL pré-signés depuis AWS SDK for Java v1 à v2
<a name="migration-s3-presign-download"></a>

Migrez votre code de téléchargement URL pré-signé pour utiliser le traitement asynchrone et accéder à des options de téléchargement étendues dans la version 2. Cette rubrique explique comment migrer de la version 1.x (v1) vers la version 2.x (v2) du. AWS SDK for Java Pour plus d'informations sur les fonctionnalités de téléchargement d'URL pré-signées v2, consultez[Travaillez avec Amazon S3 URL pré-signées](examples-s3-presign.md).

## High-level modifications
<a name="migration-s3-presign-high-level"></a>

La liste suivante résume les principales différences entre la version 1 et la version 2 pour les téléchargements d'URL pré-signés :
+ **Package** : `com.amazonaws.services.s3` →`software.amazon.awssdk.services.s3`.
+ **Classe de client** : `AmazonS3` (synchrone) → `S3AsyncClient` (asynchrone).
+ **Architecture** : Blocage synchrone des appels → Appels asynchrones avec. `CompletableFuture`
+ **Multipart** : Disponible uniquement via Transfer Manager → Disponible directement sur le client avec`multipartEnabled(true)`.
+ **Gestionnaire de transfert** : Destination du fichier uniquement → Fichier, octets ou transformateur personnalisé.

## Modifications des dépendances, des packages et des noms de classe
<a name="migration-s3-presign-deps"></a>

Le tableau suivant montre les changements de dépendance et de nom de classe entre v1 et v2.


| Modifier | v1 |   v2 | 
| --- | --- | --- | 
| Dépendances de Maven |  <pre><dependencyManagement><br />    <dependencies><br />        <dependency><br />            <groupId>com.amazonaws</groupId><br />            <artifactId>aws-java-sdk-bom</artifactId><br />            <version>{{1.12.7971}}</version><br />            <type>pom</type><br />            <scope>import</scope><br />        </dependency><br />    </dependencies><br /></dependencyManagement><br /><dependencies><br />    <dependency><br />        <groupId>com.amazonaws</groupId><br />        <artifactId>aws-java-sdk-s3</artifactId><br />    </dependency><br /></dependencies></pre>  |  <pre><dependencyManagement><br />    <dependencies><br />        <dependency><br />            <groupId>software.amazon.awssdk</groupId><br />            <artifactId>bom</artifactId><br />            <version>{{2.48.02}}</version><br />            <type>pom</type><br />            <scope>import</scope><br />        </dependency><br />    </dependencies><br /></dependencyManagement><br /><dependencies><br />    <dependency><br />        <groupId>software.amazon.awssdk</groupId><br />        <artifactId>s3</artifactId><br />    </dependency><br />    <!-- Optional: for Transfer Manager --><br />    <dependency><br />        <groupId>software.amazon.awssdk</groupId><br />        <artifactId>s3-transfer-manager</artifactId><br />    </dependency><br /></dependencies></pre>  | 
| Nom du package | com.amazonaws.services.s3 | software.amazon.awssdk.services.s3 | 
| Noms des classes | AmazonS3, TransferManager | S3AsyncClient, S3TransferManager | 

1 [Dernière version](https://central.sonatype.com/artifact/com.amazonaws/aws-java-sdk-bom) sur le site Web de Maven Central. 2 [Dernière version](https://central.sonatype.com/artifact/software.amazon.awssdk/bom) sur le site Web de Maven Central.

## Modifications de l'API
<a name="migration-s3-presign-api-changes"></a>

### Téléchargements du client S3
<a name="migration-s3-presign-api-s3client"></a>

Le tableau suivant compare les appels d'API v1 et v2 pour les téléchargements de clients S3.


| Cas d’utilisation | v1 |   v2 | 
| --- | --- | --- | 
| Créer le client |  <pre>AmazonS3 s3Client = <br />        AmazonS3ClientBuilder.defaultClient();</pre>  |  <pre>S3AsyncClient s3AsyncClient = <br />        S3AsyncClient.create();<br />AsyncPresignedUrlExtension extension = <br />        s3AsyncClient.presignedUrlExtension();</pre>  | 
| Génération d'une URL pré-signée |  <pre>Date expiration = new Date(<br />        System.currentTimeMillis() + 600_000);<br />URL presignedUrl = s3Client.generatePresignedUrl(<br />        new GeneratePresignedUrlRequest(<br />            "my-bucket", "my-key")<br />            .withMethod(HttpMethod.GET)<br />            .withExpiration(expiration));</pre>  |  <pre>S3Presigner presigner = S3Presigner.create();<br />PresignedGetObjectRequest presigned = <br />        presigner.presignGetObject(r -> r<br />            .getObjectRequest(req -> req<br />                .bucket("my-bucket").key("my-key"))<br />            .signatureDuration(Duration.ofMinutes(10)));<br />URL presignedUrl = presigned.url();<br />presigner.close();</pre>  | 
| Créez la demande de téléchargement |  <pre>PresignedUrlDownloadRequest downloadRequest = <br />        new PresignedUrlDownloadRequest(presignedUrl);</pre>  |  <pre>PresignedUrlDownloadRequest downloadRequest = <br />        PresignedUrlDownloadRequest.builder()<br />            .presignedUrl(presignedUrl)<br />            .build();</pre>  | 
| Télécharger pour diffuser |  <pre>PresignedUrlDownloadResult result = <br />        s3Client.download(downloadRequest);<br />InputStream content = result.getS3Object()<br />        .getObjectContent();</pre>  |  <pre>ResponseBytes<GetObjectResponse> bytes = <br />        extension.getObject(downloadRequest,<br />            AsyncResponseTransformer.toBytes())<br />        .join();</pre>  | 
| Télécharger vers un fichier |  <pre>s3Client.download(downloadRequest,<br />        new File("/tmp/file.bin"));</pre>  |  <pre>extension.getObject(downloadRequest,<br />            Paths.get("/tmp/file.bin"))<br />        .join();</pre>  | 
| Télécharger avec gamme |  <pre>PresignedUrlDownloadRequest rangeRequest = <br />        new PresignedUrlDownloadRequest(presignedUrl);<br />rangeRequest.setRange(0, 1023);<br />s3Client.download(rangeRequest);</pre>  |  <pre>PresignedUrlDownloadRequest rangeRequest = <br />        PresignedUrlDownloadRequest.builder()<br />            .presignedUrl(presignedUrl)<br />            .range("bytes=0-1023")<br />            .build();<br />extension.getObject(rangeRequest,<br />            Paths.get("/tmp/partial.bin"))<br />        .join();</pre>  | 

### Téléchargements de Transfer Manager
<a name="migration-s3-presign-api-tm"></a>

Le tableau suivant compare les appels d'API v1 et v2 pour les téléchargements de Transfer Manager.


| Cas d’utilisation | v1 |   v2 | 
| --- | --- | --- | 
| Création du gestionnaire de transferts |  <pre>TransferManager tm = <br />        TransferManagerBuilder.standard().build();</pre>  |  <pre>S3TransferManager tm = <br />        S3TransferManager.create();</pre>  | 
| Download |  <pre>PresignedUrlDownload download = tm.download(<br />        new PresignedUrlDownloadRequest(presignedUrl),<br />        new File("/tmp/file.bin"));<br />download.waitForCompletion();</pre>  |  <pre>PresignedFileDownload download = <br />        tm.downloadFileWithPresignedUrl(<br />            PresignedDownloadFileRequest.builder()<br />                .presignedUrlDownloadRequest(<br />                    downloadRequest)<br />                .destination(Paths.get("/tmp/file.bin"))<br />                .addTransferListener(<br />                    LoggingTransferListener.create())<br />                .build());<br />download.completionFuture().join();</pre>  | 

Pour de plus amples informations, veuillez consulter [Téléchargement à l'aide d'une URL pré-signée](transfer-manager.md#transfer-manager-presigned-url-download).

## Configuration changes
<a name="migration-s3-presign-config"></a>

### Client S3
<a name="migration-s3-presign-config-s3"></a>

Le tableau suivant décrit les modifications apportées à la configuration du client S3 de la v1 à la v2.


| Paramètre | v1 |   v2 | 
| --- | --- | --- | 
| Configuration en plusieurs parties | PresignedUrlDownloadConfig.withDownloadSizePerRequest(long) | S3AsyncClient.builder().multipartConfiguration(c -> c.minimumPartSizeInBytes(...)) | 
| En-têtes personnalisés | PresignedUrlDownloadRequest.putCustomRequestHeader(String, String) | Non pris en charge. Uniquement Range et If-Match paramétrable au moment du téléchargement. | 

### Gestionnaire des transferts
<a name="migration-s3-presign-config-tm"></a>

Le tableau suivant décrit les modifications apportées à la configuration de Transfer Manager de la version v1 à la version v2.


| Paramètre | v1 |   v2 | 
| --- | --- | --- | 
| Suivi des progrès | PresignedUrlDownloadConfig.withS3progressListener(...) | PresignedDownloadFileRequest.builder().addTransferListener(...) | 
| Reprendre en cas de nouvelle tentative | PresignedUrlDownloadConfig.withResumeOnRetry(true) | Non pris en charge | 
| Pause/Resume | Non pris en charge | Non pris en charge | 

**Note**  
Le client AWS CRT-based S3 (`S3AsyncClient.crtBuilder()`) ne prend actuellement pas en charge l'extension d'URL pré-signée. Utilisez `S3AsyncClient.builder()`.