L'opération UploadPartCopy copie les données d'un objet existant en tant que partie, en ajoutant l'en-tête x-oss-copy-source à une requête UploadPart.
Notes d'utilisation
Utilisez UploadPartCopy pour copier des fichiers de plus de 1 Go. Pour les fichiers inférieurs à 1 Go, utilisez CopyObject.
Lorsque vous utilisez UploadPartCopy :
Les buckets source et de destination doivent se trouver dans la même région.
Appelez d'abord InitiateMultipartUpload pour obtenir un ID de téléchargement (upload ID).
Si vous définissez l'en-tête
x-oss-server-side-encryptiondans la requête InitiateMultipartUpload, la partie téléchargée est chiffrée. La réponse UploadPart renvoie cet en-tête avec l'algorithme de chiffrement utilisé. InitiateMultipartUpload.Toutes les parties, à l'exception de la dernière, doivent être supérieures à 100 Ko. La taille des parties n'est validée que lors de l'appel à CompleteMultipartUpload.
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'opération via des politiques RAM ou une Bucket Policy.
|
API |
Action |
Description |
|
UploadPartCopy |
|
Lit les données de l'objet source lorsque vous téléchargez une partie en copiant les données d'un objet existant. |
|
|
Écrit les données dans l'objet de destination lorsque vous téléchargez une partie en copiant les données d'un objet existant. |
|
|
|
Lors du téléchargement d'une partie par copie de données depuis un objet existant, si vous spécifiez la version de l'objet via versionId, cette autorisation est requise pour lire la version spécifiée de l'objet source. |
Gestion des versions
Par défaut, UploadPartCopy copie la version actuelle de l'objet source. Pour copier une version spécifique, incluez la sous-ressource versionId dans x-oss-copy-source. Exemple : x-oss-copy-source : /SourceBucketName/SourceObjectName?versionId=111111.
SourceObjectName doit être encodé en URL. La réponse renvoie le versionId de l'objet copié dans l'en-tête x-oss-copy-source-version-id.
Si aucun versionId n'est spécifié et que la version actuelle est un marqueur de suppression, OSS renvoie l'erreur 404 Not Found. Si le versionId spécifié pointe vers un marqueur de suppression, OSS renvoie l'erreur 400 Bad Request.
Mesure et facturation
Lorsque vous appelez UploadPartCopy, des frais de récupération de données s'appliquent si l'objet source utilise la classe de stockage Infrequent Access (IA). Si l'objet source utilise la classe de stockage Archive, n'a pas été restauré via RestoreObject et que l'accès en temps réel aux objets Archive est activé pour le bucket, des frais de récupération de données pour l'accès en temps réel aux objets Archive s'appliquent. Les frais sont facturés au bucket source. Frais de traitement des données.
Syntaxe de la requête
PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: Size
Authorization: SignatureValue
x-oss-copy-source: /SourceBucketName/SourceObjectName
x-oss-copy-source-range: bytes=first-last
En-têtes de requête
En plus des en-têtes de requête courants, UploadPartCopy utilise les en-têtes suivants pour spécifier l'objet source et la plage de copie.
|
Nom |
Type |
Description |
|
x-oss-copy-source |
String |
L'objet source à copier. L'autorisation de lecture est requise. Valeur par défaut : Aucune |
|
x-oss-copy-source-range |
String |
La plage d'octets à copier depuis l'objet source. Par exemple, Valeur par défaut : Aucune
|
Les en-têtes suivants s'appliquent à l'objet source spécifié dans x-oss-copy-source.
|
Nom |
Type |
Description |
|
x-oss-copy-source-if-match |
String |
Copie l'objet uniquement si son ETag correspond à la valeur spécifiée. Sinon, renvoie l'erreur 412 Precondition Failed. Valeur par défaut : Aucune |
|
x-oss-copy-source-if-none-match |
String |
Copie l'objet uniquement si son ETag diffère de la valeur spécifiée. Sinon, renvoie Valeur par défaut : Aucune |
|
x-oss-copy-source-if-unmodified-since |
String |
Copie l'objet uniquement s'il n'a pas été modifié depuis l'heure spécifiée. Sinon, renvoie l'erreur 412 Precondition Failed. Valeur par défaut : Aucune |
|
x-oss-copy-source-if-modified-since |
String |
Copie l'objet uniquement s'il a été modifié depuis l'heure spécifiée. Sinon, renvoie l'erreur 304 Not Modified. Valeur par défaut : Aucune Format : GMT. Exemple : Fri, 13 Nov 2015 14:47:53 GMT |
Exemples
-
Exemple de requête
PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Length: 6291456 Date: Wed, 22 Feb 2012 08:32:21 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e x-oss-copy-source: /oss-example/src-object x-oss-copy-source-range: bytes=100-6291756Exemple de réponse
HTTP/1.1 200 OK Server: AliyunOSS Connection: keep-alive x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0**** Date: Thu, 17 Jul 2014 06:27:54 GMT <?xml version="1.0" encoding="UTF-8"?> <CopyPartResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <LastModified>2014-07-17T06:27:54.000Z </LastModified> <ETag>"5B3C1A2E053D763E1B002CC607C5****"</ETag> </CopyPartResult> -
Exemple de requête avec un versionId spécifié
PUT /multipart.data?partNumber=2&uploadId=63C06A5CFF6F4AE4A6BB3AD7F01C**** HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 07:01:56 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e x-oss-copy-source: /oss-example/src-object?versionId=CAEQMxiBgMC0vs6D0BYiIGJiZWRjOTRjNTg0NzQ1MTRiN2Y1OTYxMTdkYjQ0****Exemple de réponse
HTTP/1.1 200 OK Server: AliyunOSS Connection: keep-alive x-oss-copy-source-version-id: CAEQMxiBgMC0vs6D0BYiIGJiZWRjOTRjNTg0NzQ1MTRiN2Y1OTYxMTdkYjQ0**** x-oss-request-id: 5CAC4364B7AEADE017000660 Date: Tue, 09 Apr 2019 07:01:56 GMT <?xml version="1.0" encoding="UTF-8"?> <CopyPartResult> <LastModified>2019-04-09T07:01:56.000Z</LastModified> <ETag>"25A9F4ABFCC05743DF6E2C886C56****"</ETag> </CopyPartResult>
SDK
SDK pour cette opération :
Interface de ligne de commande ossutil
La commande ossutil pour UploadPartCopy est upload-part-copy.
Codes d'erreur
|
Code d'erreur |
Code d'état HTTP |
Description |
|
OperationNotSupported |
400 |
L'opération UploadPartCopy a été appelée sur un bucket utilisant la classe de stockage Archive. |