Chargement de fichiers dans un compartiment Lightsail à l'aide du chargement partitionné - Amazon Lightsail

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.

Chargement de fichiers dans un compartiment Lightsail à l'aide du chargement partitionné

Grâce au chargement partitionné, vous pouvez charger un seul fichier dans votre compartiment en tant qu'ensemble de parties. Chaque partie est une portion contiguë des données du fichier. Vous pouvez charger ces parties de fichier indépendamment et dans n'importe quel ordre. Si le transfert d'une partie échoue, vous pouvez la retransférer sans affecter les autres. Une fois le chargement de toutes les parties de votre fichier terminé, Amazon S3 les assemble et crée l'objet dans votre compartiment dans Amazon Lightsail. En général, lorsque l'objet atteint la taille de 100 Mo, vous devez préférer les chargements partitionnés au chargement d'objet en une seule opération. Pour plus d'informations sur les compartiments, veuillez consulter Stockage d'objets.

L'utilisation du chargement partitionné offre les avantages suivants :

  • Meilleur débit - Vous pouvez charger des parties en parallèle pour améliorer le débit.

  • Récupération rapide après des problèmes réseau - Une partie de taille plus petite réduit l'impact du redémarrage d'un chargement raté dû à une erreur réseau.

  • Chargement au fil du temps : vous pouvez charger des parties de fichier au fil du temps. Après avoir lancé un chargement partitionné, vous disposez de 24 heures pour terminer le chargement partitionné.

  • Lancement d'un chargement avant de connaître la taille finale du fichier - Vous pouvez charger un fichier à mesure que vous le créez.

Nous vous recommandons d'utiliser le chargement partitionné comme suit :

  • Si vous chargez des fichiers volumineux sur un réseau à large bande passante stable, le chargement partitionné optimise l'utilisation de la bande passante disponible en chargeant des parties du fichier en parallèle pour bénéficier de performances multithreads.

  • Si vous effectuez un chargement sur un réseau irrégulier, utilisez le chargement partitionné pour augmenter la résilience aux erreurs réseau en évitant les redémarrages du chargement. Lorsque vous utilisez le chargement partitionné, vous tentez de relancer les chargements uniquement pour les parties dont le chargement a été interrompu. Il n'est pas nécessaire de recommencer ou de charger à nouveau le fichier entier.

Table des matières

Processus de chargement partitionné

Le chargement partitionné est un processus en trois étapes qui utilise des actions Amazon S3 pour charger des fichiers dans votre compartiment dans Lightsail :

  1. Vous initiez le chargement partitionné à l'aide de l'action CreateMultipartUpload.

  2. Vous chargez les parties de fichier à l'aide de l'action UploadPart.

  3. Vous terminez le chargement partitionné à l'aide de l'action CompleteMultipartUpload.

Note

Vous pouvez arrêter un chargement partitionné après l'avoir initié à l'aide de l'action AbortMultipartUpload.

Lorsque la demande de chargement partitionné est terminée, Amazon Simple Storage Service construit l'objet à partir des parties chargées. Ensuite, vous pouvez accéder à l'objet de la même manière que vous accédez à n'importe quel autre objet dans votre compartiment.

Vous pouvez lister tous vos chargements partitionnés en cours ou obtenir une liste des parties que vous avez chargées pour un chargement partitionné spécifique. Chacune de ces opérations est expliquée dans cette section.

Lancement du chargement partitionné

Lorsque vous envoyez une demande pour lancer un chargement partitionné, Amazon Simple Storage Service renvoie une réponse avec un ID de chargement. Il s'agit d'un identifiant unique pour votre chargement partitionné. Vous devez inclure l'ID de chargement dès que vous chargez les parties, listez les parties, terminez un chargement ou arrêtez un chargement. Si vous souhaitez fournir des métadonnées qui décrivent l'objet en cours de chargement, vous devez spécifier les métadonnées dans la demande de lancement du chargement partitionné.

Chargement de parties

Lorsque vous chargez une partie, outre l'ID de chargement, vous devez spécifier un numéro de partie. Vous pouvez choisir n'importe quel numéro de partie compris entre 1 et 10 000. Un numéro de partie identifie de manière unique une partie et sa place dans l'objet que vous chargez. Le numéro de partie que vous choisissez ne doit pas obligatoirement constituer une séquence consécutive (par exemple, cela peut être 1, 5 et 14). Si vous chargez une nouvelle partie avec le même numéro qu'une partie précédemment chargée, cette dernière est remplacée.

Dès que vous chargez une partie, Amazon Simple Storage Service renvoie un en-tête ETag dans sa réponse. Pour chaque chargement de partie, vous devez enregistrer le numéro de partie et la valeur ETag. Vous devez inclure ces valeurs dans la demande ultérieure pour terminer le chargement partitionné.

Note

Toutes les parties chargées d'un chargement partitionné sont stockées sur votre compartiment. Elles consomment l'espace de stockage de votre compartiment jusqu'à ce que vous terminiez le chargement, arrêtiez le chargement ou que le chargement expire. Pour de plus amples informations, veuillez consulter Conservation du chargement partitionné plus loin dans ce guide.

Fin du chargement partitionné

Lorsque vous terminez un chargement partitionné, Amazon Simple Storage Service crée un objet en concaténant les parties par ordre croissant en fonction des numéros de partie. Si des métadonnées d'objet sont fournies dans la demande de lancement du chargement partitionné, Amazon Simple Storage Service les associe à l'objet. À l'issue d'une demande de chargement complet, les parties n'existent plus.

Votre demande de chargement partitionné complet doit inclure l'ID de chargement et une liste des numéros de partie et des valeurs ETag correspondantes. La réponse d'Amazon Simple Storage Service inclut une valeur ETag qui identifie de façon unique les données d'objet combinées. Cet ETag n'est pas nécessairement un hachage MD5 des données d'objet.

Si vous le souhaitez, vous pouvez arrêter le chargement partitionné. Après avoir arrêté un chargement partitionné, vous ne pouvez pas charger de partie avec le même ID de chargement. Tout le stockage de n'importe quelle partie du chargement partitionné annulé est alors libéré. Si des chargements de partie étaient en cours, ils peuvent encore aboutir ou échouer même après un arrêt. Pour libérer tout le stockage consommé par l'ensemble des parties, vous devez arrêter un chargement partitionné uniquement après la fin du chargement de toutes les parties.

Listes de chargement partitionné

Vous pouvez lister les parties d'un chargement partitionné spécifique ou de tous les chargements partitionnés en cours. L'opération de liste des parties renvoie des informations sur les parties que vous avez chargées pour un chargement partitionné spécifique. Pour chaque demande de liste des parties, Amazon Simple Storage Service renvoie des informations sur les parties pour le chargement partitionné spécifié, pour 1 000 parties maximum. S'il y a plus de 1 000 parties dans le chargement partitionné, vous devez envoyer une série de demandes de liste des parties pour récupérer toutes les parties. Notez que la liste des parties renvoyée n'inclut pas les parties dont le chargement n'est pas terminé. En utilisant l'opération d'affichage des chargements partitionnés, vous pouvez obtenir la liste des chargements partitionnés en cours.

Un chargement partitionné en cours est un chargement que vous avez lancé, mais que vous n'avez pas encore terminé ou arrêté. Chaque demande renvoie 1,000 chargements partitionnés maximum. S'il y a plus de 1 000 chargements partitionnés en cours, vous devez envoyer des demandes supplémentaires pour récupérer les chargements partitionnés restants. Utilisez uniquement la liste renvoyée pour la vérification. N'utilisez pas le résultat de la liste lorsque vous envoyez une demande de chargement partitionné complet. Au lieu de cela, conservez votre propre liste des numéros de parties que vous avez spécifiés lors du chargement des parties ainsi que les valeurs ETag correspondantes renvoyées par Amazon Simple Storage Service.

Opérations simultanées de chargement partitionné

Dans un environnement de développement distribué, il est possible pour l'application de lancer plusieurs mises à jour sur le même objet en même temps. L'application doit lancer plusieurs chargements partitionnés grâce à la même clé d'objet. Pour chacun de ces chargements, l'application peut ensuite charger des parties et envoyer une demande de chargement complet à Amazon Simple Storage Service pour créer l'objet. Lorsque les compartiments sont activés pour le contrôle de version, un chargement partitionné terminé crée toujours une nouvelle version. Pour les compartiments qui ne sont pas activés pour le contrôle de version, d'autres demandes peuvent avoir la priorité, par exemple les demandes reçues après le début et avant la fin d'un chargement partitionné.

Note

Il est possible que d'autres demandes aient la priorité, par exemple celles reçues après le début et avant la fin d'un chargement partitionné. Par exemple, une autre opération peut supprimer une clé entre le début et la fin d'un chargement partitionné avec cette même clé. Si cela se produit, la réponse finale du chargement partitionné peut indiquer une création d'objet réussie sans que vous n'ayez jamais vu l'objet.

Conservation du chargement partitionné

Toutes les parties chargées d'un chargement partitionné sont stockées sur votre compartiment. Elles consomment l'espace de stockage de votre compartiment jusqu'à ce que vous terminiez le chargement, arrêtiez le chargement ou que le chargement expire. Un chargement partitionné expire et il est supprimé 24 heures après le moment où il a été créé. Lorsque vous arrêtez un chargement partitionné ou qu'il expire, toutes les parties chargées sont supprimées et l'espace de stockage qu'elles utilisaient sur votre compartiment est libéré.

Limites de la fonction de chargement partitionné d'Amazon Simple Storage Service

Le tableau suivant fournit les principales spécifications du chargement partitionné.

  • Taille maximale de l'objet : 5 To

  • Nombre maximum de parties par chargement : 10 000

  • Nombres de parties : 1-10 000 (inclus)

  • Taille des parties : 5 Mo (minimum) - 5 Go (maximum). Il n'y a pas de limite de taille pour la dernière partie de votre chargement partitionné.

  • Nombre maximum de parties renvoyées pour une demande de liste des parties : 1 000

  • Nombre maximum de chargements partitionnés renvoyés dans une demande de liste de chargements partitionnés : 1 000

Fractionner le fichier à charger

Utilisez la commande split sur le système d'exploitation Linux ou Unix pour fractionner un fichier en plusieurs parties que vous chargez ensuite dans votre compartiment. Il existe des applications gratuites similaires que vous pouvez utiliser sur le système d'exploitation Windows pour fractionner un fichier. Après avoir divisé le fichier en plusieurs parties, passez à la section Lancer un chargement partitionné de ce guide.

Lancer un chargement partitionné à l'aide de l'AWS CLI

Suivez la procédure ci-dessous pour lancer un chargement partitionné à l'aide de l'AWS Command Line Interface (AWS CLI). Pour ce faire, utilisez la commande create-multipart-upload. Pour plus d'informations, veuillez consulter create-multipart-upload dans la Référence des commandes AWS CLI.

Note

Vous devez installer l'AWS CLI et la configurer pour Lightsail et Amazon S3 avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter Configuration de l'AWS CLI pour une utilisation avec Lightsail.

  1. Ouvrez une invite de commande ou une fenêtre de terminal.

  2. Entrez la commande suivante pour créer un chargement partitionné pour votre compartiment.

    aws s3api create-multipart-upload --bucket BucketName --key ObjectKey --acl bucket-owner-full-control

    Dans la commande, remplacez l'exemple de texte suivant par le vôtre :

    • BucketName : nom du compartiment pour lequel vous souhaitez créer un chargement partitionné.

    • ObjectKey : clé d'objet à utiliser pour le fichier que vous allez charger.

    Exemple :

    aws s3api create-multipart-upload --bucket DOC-EXAMPLE-BUCKET --key sailbot.mp4 --acl bucket-owner-full-control

    Le résultat doit ressembler à l'exemple suivant. La réponse inclut un UploadID que vous devez spécifier dans les commandes suivantes pour charger des parties et terminer le chargement partitionné de cet objet.

    
            Résultat de la commande create-multipart-upload

    Une fois que vous avez l'UploadID pour votre chargement partitionné, passez à la section suivante Charger une partie à l'aide de l'AWS CLI de ce guide et commencez à charger des parties.

Charger une partie à l'aide de l'AWS CLI

Suivez la procédure ci-dessous pour charger une partie du chargement partitionné à l'aide de l'AWS Command Line Interface (AWS CLI). Pour ce faire, utilisez la commande upload-part. Pour plus d'informations, veuillez consulter upload-part dans la Référence des commandes AWS CLI.

Note

Vous devez installer l'AWS CLI et la configurer pour Lightsail et Amazon S3 avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter Configuration de l'AWS CLI pour une utilisation avec Lightsail.

  1. Ouvrez une invite de commande ou une fenêtre de terminal.

  2. Saisissez la commande suivante pour charger une partie dans votre compartiment.

    aws s3api upload-part --bucket BucketName --key ObjectKey --part-number Number --body FilePart --upload-id "UploadID" --acl bucket-owner-full-control

    Dans la commande, remplacez l'exemple de texte suivant par le vôtre :

    • BucketName : nom du compartiment pour lequel vous souhaitez créer un chargement partitionné.

    • ObjectKey : clé d'objet à utiliser pour le fichier que vous allez charger.

    • Number : numéro de la partie que vous chargez. Un numéro de partie identifie de manière unique une partie et sa place dans l'objet que vous chargez. Veillez à augmenter de manière incrémentielle le paramètre --part-number avec chaque partie que vous chargez. Pour ce faire, numérotez-les dans l'ordre dans lequel Amazon Simple Storage Service doit assembler l'objet lorsque vous terminez le chargement partitionné.

    • FilePart : partie du fichier à charger depuis votre ordinateur.

    • UploadID : ID de chargement du chargement partitionné que vous avez créé plus tôt dans ce guide.

    Exemple :

    aws s3api upload-part --bucket DOC-EXAMPLE-BUCKET --key sailbot.mp4 --part-number 1 --body sailbot.mp4.001 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    Le résultat doit ressembler à l'exemple suivant. Recommencez la commande upload-part à chaque partie que vous chargez. La réponse pour chacune de vos demandes de partie de chargement inclura une valeur ETag pour la partie que vous avez chargée. Enregistrez les valeurs ETag pour chacune des parties que vous chargez. Vous aurez besoin de toutes les valeurs ETag pour terminer le chargement partitionné, qui est abordé plus loin dans ce guide.

    
            Résultat de la commande upload-part

Répertorier les parties d'un chargement partitionné à l'aide de l'AWS CLI

Suivez la procédure ci-dessous pour répertorier les parties d'un chargement partitionné à l'aide de l'AWS Command Line Interface (AWS CLI). Pour ce faire, utilisez la commande list-parts. Pour plus d'informations, veuillez consulter list-parts dans la Référence des commandes AWS CLI.

Complétez cette procédure pour obtenir les valeurs ETag pour toutes les parties chargées dans un chargement partitionné. Vous aurez besoin de ces valeurs pour terminer le chargement partitionné (explications plus loin dans ce guide). Toutefois, si vous avez enregistré toutes les valeurs ETag à partir de la réponse de vos chargements de parties, vous pouvez ignorer cette procédure et passer à la section Créer un chargement partitionné .json de ce guide.

Note

Vous devez installer l'AWS CLI et la configurer pour Lightsail et Amazon S3 avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter Configuration de l'AWS CLI pour une utilisation avec Lightsail.

  1. Ouvrez une invite de commande ou une fenêtre de terminal.

  2. Entrez la commande suivante pour répertorier les parties d'un chargement partitionné sur votre compartiment.

    aws s3api list-parts --bucket BucketName --key ObjectKey --upload-id "UploadID"

    Dans la commande, remplacez l'exemple de texte suivant par le vôtre :

    • BucketName : nom du compartiment pour lequel vous souhaitez répertorier les parties d'un chargement partitionné.

    • ObjectKey : clé d'objet du chargement partitionné.

    • UploadID : ID de chargement du chargement partitionné que vous avez créé plus tôt dans ce guide.

    Exemple :

    aws s3api list-parts --bucket DOC-EXAMPLE-BUCKET --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG"

    Le résultat doit ressembler à l'exemple suivant. La réponse répertorie tous les numéros de parties et les valeurs ETag pour les parties que vous avez chargées dans le chargement partitionné. Copiez ces valeurs dans votre presse-papiers, puis allez à la section Créer un chargement partitionné .json de ce guide.

    
            Résultat de la commande list-parts

Créer un fichier .json de chargement partitionné

Suivez la procédure ci-dessous pour créer un fichier .json de chargement partitionné qui définit toutes les parties que vous avez chargées et leurs valeurs ETag. Cette action est requise plus loin dans ce guide pour terminer le chargement partitionné.

  1. Ouvrez un éditeur de texte et collez la réponse depuis la commande list-parts que vous avez demandée dans la section précédente de ce guide.

    Le résultat doit ressembler à l'exemple suivant :

    
            Chargement en plusieurs parties du fichier JSON numéro 1
  2. Reformatez le fichier texte comme illustré dans l'exemple suivant :

    
            Chargement en plusieurs parties du fichier JSON numéro 2
  3. Enregistrez le fichier texte sous mpstructure.json sur votre ordinateur, et allez à la section Terminer un chargement partitionné à l'aide de l'AWS CLI de ce guide.

Terminer un chargement partitionné à l'aide de l'AWS CLI

Suivez la procédure ci-dessous pour terminer un chargement partitionné à l'aide de l'AWS Command Line Interface (AWS CLI). Pour ce faire, utilisez la commande complete-multipart-upload. Pour plus d'informations, veuillez consulter complete-multipart-upload dans la Référence des commandes AWS CLI.

Note

Vous devez installer l'AWS CLI et la configurer pour Lightsail et Amazon S3 avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter Configuration de l'AWS CLI pour une utilisation avec Lightsail.

  1. Ouvrez une invite de commande ou une fenêtre de terminal.

  2. Saisissez la commande suivante pour charger une partie dans votre compartiment.

    aws s3api complete-multipart-upload --multipart-upload file://JSONFileName --bucket BucketName --key ObjectKey --upload-id "UploadID" --acl bucket-owner-full-control

    Dans la commande, remplacez l'exemple de texte suivant par le vôtre :

    • JSONFileName : nom du fichier .json que vous avez créé plus tôt dans ce guide (par exemple, mpstructure.json).

    • BucketName : nom du compartiment pour lequel vous souhaitez terminer un chargement partitionné.

    • ObjectKey : clé d'objet du chargement partitionné.

    • UploadID : ID de chargement du chargement partitionné que vous avez créé plus tôt dans ce guide.

    aws s3api complete-multipart-upload --multipart-upload file://mpstructure.json --bucket DOC-EXAMPLE-BUCKET --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    Vous devriez voir une réponse similaire à l'exemple suivant. Il confirme que le chargement partitionné est terminé. L'objet est maintenant assemblé et disponible dans le compartiment.

    
            Résultat de la commande complete-multipart-upload

Répertorier les chargements partitionnés pour un compartiment à l'aide de l'AWS CLI

Suivez la procédure ci-dessous pour répertorier tous les chargements partitionnés pour un compartiment à l'aide de l'AWS Command Line Interface (AWS CLI). Pour ce faire, utilisez la commande list-multipart-uploads. Pour plus d'informations, veuillez consulter list-multipart-uploads dans la Référence des commandes AWS CLI.

Note

Vous devez installer l'AWS CLI et la configurer pour Lightsail et Amazon S3 avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter Configuration de l'AWS CLI pour une utilisation avec Lightsail.

  1. Ouvrez une invite de commande ou une fenêtre de terminal.

  2. Saisissez la commande suivante pour charger une partie dans votre compartiment.

    aws s3api list-multipart-uploads --bucket BucketName

    Dans la commande, remplacez BucketName par le nom du compartiment pour lequel vous souhaitez répertorier tous les chargements partitionnés.

    Exemple :

    aws s3api list-multipart-uploads --bucket DOC-EXAMPLE-BUCKET

    Vous devriez voir une réponse similaire à l'exemple suivant.

    
            Résultat de la commande list-multipart-uploads

Interrompre un chargement partitionné à l'aide de l'AWS CLI

Suivez la procédure ci-dessous pour interrompre un chargement partitionné à l'aide de l'AWS Command Line Interface (AWS CLI). Vous effectuez cette opération si vous avez démarré un chargement partitionné mais que vous ne souhaitez plus le poursuivre. Pour ce faire, utilisez la commande abort-multipart-upload. Pour plus d'informations, veuillez consulter abort-multipart-upload dans la Référence des commandes AWS CLI.

Note

Vous devez installer l'AWS CLI et la configurer pour Lightsail et Amazon S3 avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter Configuration de l'AWS CLI pour une utilisation avec Lightsail.

  1. Ouvrez une invite de commande ou une fenêtre de terminal.

  2. Saisissez la commande suivante pour charger une partie dans votre compartiment.

    aws s3api abort-multipart-upload --bucket BucketName --key ObjectKey --upload-id "UploadID" --acl bucket-owner-full-control

    Dans la commande, remplacez l'exemple de texte suivant par le vôtre :

    • BucketName : nom du compartiment pour lequel vous souhaitez arrêter un chargement partitionné.

    • ObjectKey : clé d'objet du chargement partitionné.

    • UploadID : ID de chargement du chargement partitionné que vous souhaitez arrêter.

    Exemple :

    aws s3api abort-multipart-upload --bucket DOC-EXAMPLE-BUCKET --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    Cette commande ne renvoie pas de réponse. Vous pouvez exécuter une commande list-multipart-uploads pour confirmer que le chargement partitionné a été arrêté.