Copier un objet existant en tant que partie

Vous pouvez prendre un objet existant (ou une partie spécifiée de celui-ci) qui est stocké dans l’un de vos buckets et le copier en tant que partie unique d’un nouvel objet, dans le cadre du processus de dépôt partitionné.

Cela permet de réutiliser les données d’un objet original pour en faire une partie d’un nouvel objet.

Cette approche exploite les objets existants et vous permet d’éviter de recharger les données de votre environnement local en les intégrant directement dans de nouveaux dépôts partitionnés.

Copier un objet existant en tant que partie avec AWS CLI

Avant de commencer :

Pour copier un objet existant en tant que partie, utilisez la commande upload-part-copy en suivant cette syntaxe :

Exemple de requête
$ aws s3api upload-part-copy \
    --profile YOUR_PROFILE \
    --bucket DESTINATION_BUCKET \
    --copy-source SOURCE_BUCKET/OBJECT \
    --copy-source-if-match "\"b4fb2aaa356797d9a28bfc640a973720\"" \
    --copy-source-if-modified-since "2024-01-01T00:00:00Z" \
    --copy-source-if-none-match "\"b4fb2aaa356797d9a28bfc640a973720\"" \
    --copy-source-if-unmodified-since "2024-01-01T00:00:00Z"  \
    --copy-source-range bytes=O-9 \
    --key MULTIPART_UPLOAD \
    --part-number 1 \
    --upload-id 2~xrosnH8pbKTk3sjXijfGIUN1KAEM3Yc \
    --endpoint https://oos.eu-west-2.outscale.com

Cette commande contient les attributs suivants que vous devez spécifier :

  • (optionnel) profile : Le profil nommé que vous voulez utiliser, créé pendant la configuration d’AWS CLI. Pour en savoir plus, voir Installer et configurer AWS CLI.

  • bucket : Le bucket de destination dans lequel l’objet sera copié comme partie dans le cadre d’un dépôt partitionné.

  • copy-source : Le chemin vers le bucket source contenant l’objet que vous souhaitez copier.

  • (optionnel) copy-source-if-match : Copie l’objet uniquement si son ETag correspond à l’ETag indiqué pour cet attribut.

  • (optionnel) copy-source-if-modified-since : Copie l’objet seulement s’il a été modifié après la date et l’heure indiquées en format UTC pour cet attribut.

  • (optionnel) copy-source-if-none-match : Copie l’objet uniquement si son ETag ne correspond pas à l’ETag indiqué pour cet attribut.

  • (optionnel) copy-source-if-unmodified-since : Copie l’objet uniquement s’il n’a pas été modifié depuis la date et l’heure indiquées en format UTC pour cet attribut.

  • (optionnel) copy-source-range : Spécifie la partie de l’objet que vous souhaitez copier. Le format est bytes=premier-dernier, où premier et dernier sont les points de départ et de fin de la partie que vous souhaitez copier. Par exemple, bytes=O-9 signifie que vous copiez les dix premiers octets de l’objet.

Vous ne pouvez utiliser cet attribut que si l’objet que vous copiez a une taille supérieure à 5 Mo.

  • key : Le nom donné au dépôt partitionné dans lequel vous souhaitez déposer l’objet copié.

  • part-number : Le numéro de la partie. Ce nombre doit être un entier compris entre 1 et 10000.

  • upload-id : L’ID du dépôt que vous avez reçu en créant le dépôt partitionné sur le bucket de destination. Pour en savoir plus, voir Créer un dépôt partitionné.

  • endpoint : Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête.

La commande upload-part-copy renvoie les éléments suivants :

Exemple de résultat
{
    "CopySourceVersionId": "aJavne0zwQtV00000000001I4j3QKItW",
    "CopyPartResult": {
        "ETag": "\"a367ed62e9d2353a3336d431fa4da763\"",
        "LastModified": "2024-02-28T09:22:19.123000+00:00"
    }
}
  • CopySourceVersionId : Si le versioning a été activé sur le bucket source, la version de l’ID de l’objet en train d’être copié dans le bucket de destination. Pour en savoir plus, voir Utiliser le bucket versioning.

  • CopyPartResult : Contient les données de réponse pour une partie copiée dans un dépôt partitionné.

    • ETag : L’ETAG de la partie.

      Conservez précieusement cet élément, vous en aurez besoin dans d’autres commande pour le dépôt partitionné.

      Si vous perdez cet élément, vous pouvez le retrouver. Pour en savoir plus, voir Lister les dépôts partitionnés d’un bucket.

    • LastModified : La date et l’heure, au format UTC, auxquelles l’objet a été copié.

L’objet que vous avez copié en tant que partie n’apparaît pas immédiatement dans le bucket de destination car le processus de dépôt partitionné n’est pas encore finalisé. En effet, les parties que vous déposez ne sont pas combinées et visibles en tant qu’objet unique dans le bucket de destination tant que vous n’avez pas explicitement finalisé le dépôt partitionné. Pour en savoir plus, voir Finaliser un dépôt partitionné.

Pages connexes

AWS™ et Amazon Web Services™ sont des marques de commerce d’Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.