Tous les produits
Search
Centre de documentation

Object Storage Service:UploadPartCopy

Dernière mise à jour :Aug 18, 2026

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-encryption dans 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

oss:GetObject

Lit les données de l'objet source lorsque vous téléchargez une partie en copiant les données d'un objet existant.

oss:PutObject

É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.

oss:GetObjectVersion

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.

Remarque

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, bytes=0-9 copie les 10 premiers octets.

Valeur par défaut : Aucune

  • Si non spécifié, l'intégralité de l'objet source est copiée.

  • Si spécifié, la réponse inclut Content-Range avec la longueur totale du fichier et la plage copiée. Exemple : Content-Range: bytes 0-9/44 indique un fichier de 44 octets dont les octets 0 à 9 ont été copiés.

  • Si la plage n'est pas valide, l'objet entier est copié et Content-Range est omis.

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 304 Not Modified.

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-6291756

    Exemple 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.