D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples GitHub .
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.
Utilisation UploadPartCopy
avec un AWS SDK ou une CLI
Les exemples de code suivants illustrent comment utiliser UploadPartCopy
.
Les exemples d’actions sont des extraits de code de programmes de plus grande envergure et doivent être exécutés en contexte. Vous pouvez voir cette action en contexte dans l’exemple de code suivant :
- CLI
-
- AWS CLI
-
Pour télécharger une partie d'un objet en copiant les données d'un objet existant comme source de données
L'upload-part-copy
exemple suivant télécharge une partie en copiant les données d'un objet existant en tant que source de données.
aws s3api upload-part-copy \
--bucket amzn-s3-demo-bucket
\
--key "Map_Data_June.mp4"
\
--copy-source "amzn-s3-demo-bucket/copy_of_Map_Data_June.mp4"
\
--part-number 1
\
--upload-id "bq0tdE1CDpWQYRPLHuNG50xAT6pA5D.m_RiBy0ggOH6b13pVRY7QjvLlf75iFdJqp_2wztk5hvpUM2SesXgrzbehG5hViyktrfANpAD0NO.Nk3XREBqvGeZF6U3ipiSm"
Sortie :
{
"CopyPartResult": {
"LastModified": "2019-12-13T23:16:03.000Z",
"ETag": "\"711470fc377698c393d94aed6305e245\""
}
}
- Java
-
- SDK pour Java 2.x
-
public CompletableFuture<String> performMultiCopy(String toBucket, String bucketName, String key) {
CreateMultipartUploadRequest createMultipartUploadRequest = CreateMultipartUploadRequest.builder()
.bucket(toBucket)
.key(key)
.build();
getAsyncClient().createMultipartUpload(createMultipartUploadRequest)
.thenApply(createMultipartUploadResponse -> {
String uploadId = createMultipartUploadResponse.uploadId();
System.out.println("Upload ID: " + uploadId);
UploadPartCopyRequest uploadPartCopyRequest = UploadPartCopyRequest.builder()
.sourceBucket(bucketName)
.destinationBucket(toBucket)
.sourceKey(key)
.destinationKey(key)
.uploadId(uploadId) // Use the valid uploadId.
.partNumber(1) // Ensure the part number is correct.
.copySourceRange("bytes=0-1023") // Adjust range as needed
.build();
return getAsyncClient().uploadPartCopy(uploadPartCopyRequest);
})
.thenCompose(uploadPartCopyFuture -> uploadPartCopyFuture)
.whenComplete((uploadPartCopyResponse, exception) -> {
if (exception != null) {
// Handle any exceptions.
logger.error("Error during upload part copy: " + exception.getMessage());
} else {
// Successfully completed the upload part copy.
System.out.println("Upload Part Copy completed successfully. ETag: " + uploadPartCopyResponse.copyPartResult().eTag());
}
});
return null;
}