Appelez l'opération InitiateMultipartUpload pour initialiser un téléchargement en plusieurs parties avant de transférer les données par blocs vers OSS.
Notes
L'opération InitiateMultipartUpload renvoie un ID de téléchargement unique à l'échelle mondiale. Utilisez cet identifiant pour les opérations ultérieures, telles que l'annulation ou la consultation du téléchargement en plusieurs parties.
L'initialisation d'un téléchargement en plusieurs parties n'affecte pas un objet existant portant le même nom.
Pour calculer la signature d'authentification de l'opération InitiateMultipartUpload, ajoutez
?uploadsàCanonicalizedResource.L'initialisation d'un téléchargement en plusieurs parties nécessite l'autorisation
oss:PutObject. Vous pouvez configurer cette autorisation dans Accorder des autorisations personnalisées à un utilisateur RAM.
Autorisations
Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations. Les utilisateurs RAM ou les rôles RAM associés à un compte Alibaba Cloud ne disposent d'aucune autorisation par défaut. Le compte Alibaba Cloud ou l'administrateur du compte doit accorder les autorisations d'exploitation via des stratégies RAM ou une stratégie de compartiment.
|
API |
Action |
Description |
|
InitiateMultipartUpload |
|
Initialise les tâches de téléchargement en plusieurs parties. |
|
|
Cette autorisation est requise lors de l'initialisation d'une tâche de téléchargement en plusieurs parties si vous spécifiez des tags d'objet via x-oss-tagging. |
|
|
|
Ces deux autorisations sont requises lors du téléchargement d'un objet si ses métadonnées contiennent X-Oss-Server-Side-Encryption: KMS. |
|
|
|
Syntaxe de la requête
POST /ObjectName?uploads HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT date
Authorization: SignatureValue
En-têtes de requête
InitiateMultipartUpload prend en charge les en-têtes de requête HTTP standard (Cache-Control, Content-Disposition, Content-Encoding, Content-Type, Expires) ainsi que les en-têtes personnalisés préfixés par x-oss-meta-. Ces en-têtes suivent les mêmes règles que l'opération PutObject.
Nom | Type | Description |
Cache-Control | Chaîne | Spécifie le comportement de mise en cache de la page web lors du téléchargement de l'objet, tel que défini dans la norme RFC 2616. Valeur par défaut : none |
Content-Disposition | Chaîne | Spécifie le nom de fichier de téléchargement pour l'objet, tel que défini dans la norme RFC 2616. Valeur par défaut : none |
Content-Encoding | Chaîne | Spécifie l'encodage du contenu de l'objet, tel que défini dans la norme RFC 2616. Valeur par défaut : none |
Expires | Chaîne | La date d'expiration, telle que définie dans la norme RFC 2616. Valeur par défaut : none |
x-oss-forbid-overwrite | Chaîne | Indique s'il faut écraser un objet existant portant le même nom. Si le versioning est activé ou suspendu pour le compartiment, le paramètre x-oss-forbid-overwrite est ignoré et l'objet existant est écrasé.
La définition du paramètre x-oss-forbid-overwrite réduit les performances en termes de QPS. Si vous utilisez x-oss-forbid-overwrite à haut volume (QPS > 1 000), contactez le support technique pour éviter toute interruption de service. |
x-oss-server-side-encryption | Chaîne | La méthode de chiffrement côté serveur utilisée pour chiffrer chaque partie de l'objet. Valeurs valides : AES256, KMS Important Pour utiliser l'algorithme de chiffrement KMS, activez d'abord le service Key Management Service (KMS). S'il est spécifié, OSS chiffre chaque partie téléchargée avec la méthode indiquée et inclut cet en-tête dans les réponses de téléchargement et de transfert. La valeur de l'en-tête dans la réponse de téléchargement indique l'algorithme de chiffrement de l'objet. |
x-oss-server-side-encryption-key-id | Chaîne | L'ID de la clé maître client (CMK) gérée par KMS. Cet en-tête n'est valide que lorsque le paramètre x-oss-server-side-encryption est défini sur KMS. |
x-oss-storage-class | Chaîne | La classe de stockage de l'objet. S'il est spécifié, l'objet utilise cette classe de stockage indépendamment de la valeur par défaut du compartiment. Par exemple, si vous définissez le paramètre x-oss-storage-class sur Standard, l'objet est stocké en tant que Standard, même dans un compartiment IA. Valeurs valides :
|
x-oss-tagging | Chaîne | Le tag d'objet. Vous pouvez spécifier plusieurs tags. Exemple : TagA=A&TagB=B Remarque Les clés et les valeurs des tags doivent être encodées en URL. Si un tag ne contient pas de signe égal ( |
Paramètres de requête
Spécifiez le paramètre encoding-type pour encoder le nom de l'objet dans la réponse.
Nom | Type | Description |
encoding-type | Chaîne | La méthode d'encodage du nom de l'objet dans la réponse. Les noms d'objets sont encodés en UTF-8, mais XML 1.0 ne prend pas en charge certains caractères de contrôle (valeurs ASCII de 0 à 10). Utilisez ce paramètre pour encoder les noms d'objets contenant de tels caractères. Valeur par défaut : none Valeur valide : url |
Éléments de réponse
OSS renvoie une réponse XML contenant les éléments suivants :
Nom | Type | Description |
InitiateMultipartUploadResult | Conteneur | Le conteneur pour les résultats de l'opération InitiateMultipartUpload. Nœuds enfants : Bucket, Key, UploadId et EncodingType Nœud parent : Aucun |
Bucket | Chaîne | Le nom du compartiment pour l'événement de téléchargement en plusieurs parties. Nœud parent : InitiateMultipartUploadResult |
Key | Chaîne | Le nom de l'objet pour l'événement de téléchargement en plusieurs parties. Nœud parent : InitiateMultipartUploadResult |
UploadId | Chaîne | L'ID unique pour l'événement de téléchargement en plusieurs parties. Utilisez cet ID dans les appels ultérieurs aux opérations UploadPart et CompleteMultipartUpload. Nœud parent : InitiateMultipartUploadResult |
EncodingType | Chaîne | Le type d'encodage du nom de l'objet dans la réponse. Présent uniquement lorsque le paramètre encoding-type est spécifié dans la requête. Nœud parent : InitiateMultipartUploadResult |
Cette opération renvoie également les en-têtes de réponse communs.
Exemples
-
Exemple de requête
POST /multipart.data?uploads HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 22 Feb 2012 08:32:21 GMT x-oss-storage-class: Archive Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemple de réponse
HTTP/1.1 200 OK Content-Length: 230 Server: AliyunOSS Connection: keep-alive x-oss-request-id: 42c25703-7503-fbd8-670a-bda01eae**** Date: Wed, 22 Feb 2012 08:32:21 GMT Content-Type: application/xml <?xml version="1.0" encoding="UTF-8"?> <InitiateMultipartUploadResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Bucket>oss-example</Bucket> <Key>multipart.data</Key> <UploadId>0004B9894A22E5B1888A1E29F823****</UploadId> </InitiateMultipartUploadResult>
SDK
SDK pour cette opération :
Outil de ligne de commande ossutil
Commande ossutil correspondante : initiate-multipart-upload.
Codes d'erreur
Code d'erreur | Code d'état HTTP | Description |
InvalidEncryptionAlgorithmError | 400 | Une méthode de chiffrement côté serveur autre que AES256, KMS est spécifiée. |
InvalidArgument | 400 | L'en-tête de requête x-oss-server-side-encryption est ajouté lors du téléchargement de chaque partie. |
InvalidArgument | 400 | La classe de stockage spécifiée n'est pas valide. |
KmsServiceNotEnabled | 403 | L'algorithme de chiffrement KMS est utilisé, mais KMS n'est pas activé dans la console. |
FileAlreadyExists | 409 | Les causes possibles de cette erreur sont les suivantes :
|