Utilisation de l'API de téléchargement multipart pour Object Storage

Découvrez comment exécuter des téléchargements multipart pour un bucket à l'aide de l'API.

Un téléchargement multipart exécuté à l'aide de l'API comporte les étapes suivantes :

  1. Création des parties de l'objet

  2. Démarrage d'un téléchargement

  3. Téléchargement des parties d'objet

  4. Validation (ou annulation) du téléchargement

Avant d'utiliser l'API de téléchargement multipart, vous devez créer les parties à télécharger. Object Storage fournit des opérations d'API pour les étapes restantes. Le service fournit également des opérations d'API permettant de répertorier les téléchargements multipartenaires en cours, de répertorier les parties d'objet dans un téléchargement multipartenaire en cours et de quitter les téléchargements multipartenaires en cours démarrés via l'API. Voici un aperçu général des étapes de l'API, mais vous pouvez consulter API Reference pour obtenir des informations détaillées sur les appels d'API pris en charge.

Création des parties d'objet

Avec le téléchargement multipart, vous fractionnez l'objet à télécharger en parties distinctes. Les parties individuelles peuvent avoir une taille maximale de 50 Gio. Déterminez le numéro de partie à utiliser pour chaque partie. Les numéros de partie peuvent aller de 1 à 10 000. Il n'est pas nécessaire d'affecter les numéros, mais Object Storage construit l'objet en organisant les numéros de partie dans l'ordre croissant.

Démarrage d'un téléchargement

Une fois que vous avez terminé de créer les parties de l'objet, démarrez un téléchargement multipart en appelant l'API REST CreateMultipartUpload. Indiquez le nom d'objet et toutes les métadonnées d'objet. Object Storage répond avec un ID de téléchargement unique que vous devez inclure dans toutes les demandes relatives à ce téléchargement multipart vers le serveur. Object Storage marque également le téléchargement comme étant actif. Le téléchargement reste actif jusqu'à ce que vous le validiez explicitement ou l'abandonniez.

Téléchargement des parties d'objet

Effectuez une demande UploadPart pour chaque téléchargement de partie d'objet. Dans les paramètres de la demande, indiquez l'espace de noms Object Storage, le nom de bucket, l'ID de téléchargement et le numéro de partie. Dans le corps de la demande, incluez la partie de l'objet. Les parties de l'objet peuvent être téléchargées en parallèle et dans n'importe quel ordre. Lorsque vous validez le téléchargement, Object Storage utilise le numéro des parties d'objet pour les séquencer. Les numéros de référence ne doivent pas nécessairement être contigus. Si plusieurs parties d'objet sont téléchargées à l'aide des mêmes ID de téléchargement et numéro, l'opération CommitMultipartUpload valide la dernière partie téléchargée. Pour connaître les exigences en matière de signature des demandes, reportez-vous à Instructions spéciales pour les demandes PUT Object Storage.

Object Storage renvoie une valeur ETag (balise d'entité) pour chaque partie téléchargée. Lorsque vous validez le téléchargement, vous devez disposer à la fois du numéro de partie et de la valeur ETag correspondante pour chaque partie.

En cas de problèmes réseau, vous pouvez redémarrer un téléchargement en échec pour une partie donnée. Il n'est pas nécessaire de redémarrer l'ensemble du téléchargement. Si, pour une raison quelconque, vous ne pouvez pas effectuer un téléchargement unique, le téléchargement multipart vous permet de continuer à télécharger des parties à votre propre rythme. Lorsqu'un téléchargement multipart est actif, vous pouvez continuer à ajouter des parties, tant que le nombre total est inférieur à 10 000.

Vous pouvez surveiller un téléchargement multipart actif en répertoriant toutes les parties qui ont été téléchargées. (Vous ne pouvez pas répertorier d'informations pour une partie d'objet dans un téléchargement multipart actif.) L'opération ListMultipartUploadParts nécessite l'espace de noms Object Storage, le nom de bucket et l'ID de téléchargement. Object Storage répond avec des informations sur les parties associées à l'ID de téléchargement indiqué. Les informations sur les parties incluent le numéro de partie, la valeur ETag, checksum MD5 et la taille de la partie (en octets).

De même, si plusieurs téléchargements multipart se produisent simultanément, vous pouvez voir les téléchargements en cours. Appelez l'API ListMultipartUploads pour répertorier les téléchargements multipart actifs dans l'espace de noms Object Storage et le bucket Object Storage indiqués.

Les frais de stockage des parties sont comptabilisés lorsque vous téléchargez des données.

Validation du téléchargement

Lorsque vous avez téléchargé toutes les parties d'un objet, validez le téléchargement. Utilisez les paramètres de demande CommitMultipartUpload pour indiquer l'espace de noms Object Storage, le nom de bucket et l'ID de téléchargement. Incluez le numéro de partie et la valeur ETag correspondante pour chaque partie dans le corps de la demande. Lorsque vous validez le téléchargement, Object Storage construit l'objet à partir de ses parties constitutives. L'objet est stocké dans le bucket et l'espace de noms Object Storage indiqués. Vous pouvez le traiter comme tout autre objet. Le nettoyage de la mémoire occupe l'espace de stockage des numéros de parties téléchargées, mais n'a pas été inclus dans la demande CommitMultipartUpload.

Vous ne pouvez pas répertorier ou récupérer les parties d'un téléchargement terminé. Vous ne pouvez pas non plus ajouter ou enlever des parties dans un téléchargement terminé. Pour ce faire, vous pouvez démarrer un nouveau téléchargement.

Annulation du chargement

Si vous décidez d'annuler un téléchargement multipart au lieu de le valider, attendez la fin des téléchargements de parties en cours, puis utilisez l'opération AbortMultipartUpload. Si vous annulez un téléchargement alors que des téléchargements de parties sont toujours en cours, Object Storage supprime les parties terminées et celles en cours. Les ID des téléchargements multipart annulés ne peuvent pas être réutilisés.