Utilisation de l'API de chargement en plusieurs parties pour le stockage d'objets
Voyez comment exécuter des chargements en plusieurs parties pour un seau à l'aide de l'API.
Un chargement en plusieurs parties effectué à l'aide de l'API comprend les étapes suivantes :
-
Création des parties d'objet
-
Démarrage d'un chargement
-
Chargement des parties d'objet
-
Validation (ou annulation) du chargement
Avant d'utiliser l'API de chargement en plusieurs parties, vous devez créer les parties à charger. Le service Stockage d'objets fournit des opérations d'API pour les étapes restantes. Le service offre également des opérations d'API pour lister les chargements en plusieurs parties en cours, lister des parties d'objet dans un chargement en plusieurs parties en cours et quitter des chargements en plusieurs parties démarrés au moyen de l'API. Cette section présente un aperçu général des étapes de l'API, mais vous pouvez voir les Informations de référence sur les API pour plus d'informations sur les appels d'API pris en charge.
Création des parties d'objet
Avec le chargement en plusieurs parties, vous fractionnez l'objet à charger en différentes parties. Les différentes parties peuvent avoir une taille de 50 Gio. Déterminez le numéro de partie à utiliser pour chaque partie. Les numéros de partie peuvent être compris entre 1 et 10 000. Vous n'avez pas besoin d'affecter des numéros contigus, mais le stockage d'objets construit l'objet en organisant les numéros de partie dans l'ordre croissant.
Démarrage d'un chargement
Après avoir terminé la création des parties d'objet, commencez un chargement en plusieurs parties en créant un appel d'API REST CreateMultipartUpload. Indiquez le nom de l'objet et les métadonnées d'objet. Le stockage d'objets répond avec un ID chargement unique que vous devez inclure dans toute demande associée à ce chargement en plusieurs parties. Le stockage d'objets marque également le chargement comme étant actif. Le chargement reste actif jusqu'à ce que vous l'ayez explicitement validé ou abandonné.
Chargement des parties d'objet
Faites une demande UploadPart pour chaque chargement de parties d'objet. Dans les paramètres de la demande, indiquez l'espace de noms du stockage d'objets , le nom du seau, l'ID chargement et le numéro de la partie. Dans le corps de la demande, incluez la partie de l'objet. Les parties d'objet peuvent être chargées en parallèle et dans n'importe quel ordre. Lorsque vous validez le chargement, le stockage d'objets utilise les numéros de partie pour séquencer les parties d'objet. Les numéros de pièce ne doivent pas nécessairement être contigus. Si plusieurs parties d'objet sont chargées à l'aide du même ID chargement et du même numéro de partie, la dernière partie chargée est validée par l'opération CommitMultipartUpload. Voir Instructions spéciales pour les demandes PUT du stockage d'objets pour signer les exigences de demande.
Le stockage d'objets retourne une valeur ETag (balise d'entité) pour chaque partie chargée. Vous devez avoir à la fois le numéro de partie et la valeur ETag correspondante pour chaque partie lors de la validation du chargement.
Si vous avez des problèmes de réseau, vous pouvez relancer le chargement en échec pour une partie. Vous n'avez pas à relancer l'intégralité du chargement. Si pour une raison ou une autre, vous ne pouvez pas effectuer un chargement en une seule fois, le chargement en plusieurs parties vous permet de poursuivre le chargement des parties à votre rythme. Pendant qu'un chargement en plusieurs parties est actif, vous pouvez continuer à ajouter des parties tant que le nombre total ne dépasse pas 10 000.
Vous pouvez vérifier un chargement en plusieurs parties actif en listant toutes les parties qui ont été chargées. (Vous ne pouvez pas lister les informations pour une partie d'objet dans un chargement en plusieurs parties actif). L'opération ListMultipartUploadParts nécessite l'espace de noms du stockage d'objets, le nom du seau et l'ID chargement. Le stockage d'objets répond avec des informations sur les parties associées à l'ID chargement indiqué. Les informations sur les parties comprennent le numéro de partie, la valeur ETag, le total de contrôle MD5 et la taille de la partie (en octets).
De même, si plusieurs chargements en plusieurs parties se produisent simultanément, vous pouvez voir quels chargements sont en cours. Effectuez un appel d'API ListMultipartUploads pour lister les chargements en plusieurs parties actifs dans l'espace de noms et le seau du stockage d'objets indiqués.
Les frais pour le stockage de parties commencent à se cumuler lorsque vous chargez des données.
Validation du chargement
Lorsque vous avez chargé toutes les parties d'objet, validez le chargement. Utilisez les paramètres de demande CommitMultipartUpload pour spécifier l'espace de noms du stockage d'objets, le nom du seau et l'ID chargement. Incluez le numéro de partie et la valeur ETag correspondante pour chaque partie figurant dans le corps de la demande. Lorsque vous validez le chargement, le stockage d'objets construit l'objet à partir de ses parties constitutives. L'objet est stocké dans le seau et l'espace de noms du stockage d'objets spécifiés. Vous pouvez le traiter comme tout autre objet. Le nettoyage de la mémoire libère l'espace de stockage occupé par les numéros de partie que vous avez chargées, mais qui n'ont pas été incluses dans la demande CommitMultipartUpload.
Vous ne pouvez pas lister ou extraire des parties d'un chargement terminé. Vous ne pouvez pas ajouter ou supprimer des parties d'un chargement terminé. Si vous le souhaitez, vous pouvez remplacer l'objet en démarrant un nouveau chargement.
Annulation du chargement
Si vous décidez d'annuler un chargement en plusieurs parties plutôt que de valider le chargement, attendez que les chargements en cours soient terminés, puis utilisez l'opération AbortMultipartUpload. Si vous annulez un chargement alors que des chargements de parties sont encore en cours, le stockage d'objets nettoie les parties terminées et en cours. Les ID chargement issus des chargements en plusieurs parties annulés ne peuvent pas être réutilisés.