Tous les produits
Search
Centre de documentation

Object Storage Service:copy-object

Dernière mise à jour :Aug 18, 2026

La commande copy-object permet de copier des objets stockés dans le même bucket ou dans des buckets différents au sein d'une même région.

Notes

  • Pour restaurer une version antérieure d'un objet en tant que version actuelle, copiez cette version antérieure dans le bucket où l'objet est stocké. OSS stockera alors cette version antérieure comme version actuelle.

  • Lorsque vous copiez des objets au sein du même bucket, aucune limite de taille ne s'applique. Pour les copies entre buckets d'une même région, nous recommandons d'utiliser cette opération uniquement pour les objets inférieurs à 1 Go. Pour les objets supérieurs à 1 Go, exécutez la commande upload-part-copy.

  • Si l'objet source est un lien symbolique, seul le lien est copié. L'objet cible du lien symbolique n'est pas copié.

Permissions

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 nécessaires via des politiques RAM ou une Bucket Policy.

API

Action

Description

CopyObject

oss:GetObject

Copie des objets au sein d'un bucket ou entre des buckets d'une même région.

oss:PutObject

oss:GetObjectVersion

Cette autorisation est également requise si vous spécifiez la version de l'objet source via versionId.

oss:GetObjectTagging

Ces autorisations sont nécessaires si vous copiez les tags d'objet via x-oss-tagging.

oss:PutObjectTagging

oss:GetObjectVersionTagging

Cette autorisation est également requise si vous spécifiez les tags d'une version spécifique de l'objet source via versionId.

kms:GenerateDataKey

Lors de la copie d'un objet, si les métadonnées de l'objet de destination contiennent X-Oss-Server-Side-Encryption: KMS, ces deux autorisations sont requises.

kms:Decrypt

Syntaxe

ossutil api copy-object --bucket value --key value --copy-source value [flags]

Paramètre

Type

Description

--bucket

string

Nom du bucket.

--key

string

Chemin complet de l'objet.

--forbid-overwrite

string

Indique si l'opération CopyObject peut écraser les objets existants portant le même nom que les objets à copier.

--copy-source

string

Adresse d'accès à l'objet source. Format : bucket/UrIEncode(key). Vous devez disposer des autorisations de lecture sur l'objet source. Le nom de l'objet source doit être encodé en URL.

--copy-source-if-match

string

Si la valeur ETag de l'objet source correspond à celle spécifiée dans la requête, OSS copie l'objet. Sinon, OSS renvoie le code d'état HTTP 412 (PreconditionFailed).

--copy-source-if-modified-since

string

Condition de transfert d'objet. Si l'heure spécifiée est antérieure à l'heure réelle de modification de l'objet, le système transfère l'objet et renvoie 200 OK. Sinon, il renvoie 304 Not Modified.

--copy-source-if-none-match

string

Condition de transfert d'objet. Si la valeur ETag spécifiée ne correspond pas à celle de l'objet source, OSS transfère l'objet et renvoie 200 OK. Sinon, il renvoie 304 Not Modified.

--copy-source-if-unmodified-since

string

Condition de transfert d'objet. Si l'heure spécifiée est identique ou postérieure à l'heure réelle de modification, OSS transfère l'objet et renvoie 200 OK. Sinon, il renvoie 412 Precondition Failed.

--metadata

stringArray

Métadonnées utilisateur de l'objet au format clé=valeur. Pour spécifier des métadonnées personnalisées, configurez les paramètres préfixés par x-oss-meta-*.

--metadata-directive

string

Méthode utilisée pour configurer les métadonnées de l'objet de destination.

--object-acl

string

Spécifie la liste de contrôle d'accès (ACL) de l'objet.

--server-side-encryption

string

Méthode utilisée pour chiffrer les objets sur le serveur OSS.

--server-side-encryption-key-id

string

ID de la clé maître client (CMK) gérée par Key Management Service (KMS).

--storage-class

string

Classe de stockage de l'objet.

--tagging

string

Tags de l'objet.

--tagging-directive

string

Méthode utilisée pour ajouter des tags à l'objet de destination.

Remarque
  • La commande copy-object correspond à l'opération API CopyObject. Pour plus d'informations sur les paramètres, consultez CopyObject.

  • Pour plus d'informations sur les options de ligne de commande globales prises en charge, consultez Options de ligne de commande.

Exemples

  • Copiez srcObject depuis srcBucket vers examplebucket sous le nom exampleobject.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject
  • Copiez srcObject depuis examplebucket sous le nom exampleobject.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject
  • Copiez srcObject depuis examplebucket sous le nom exampleobject et affichez le résultat au format JSON.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json
  • Copiez srcObject depuis examplebucket sous le nom exampleobject et affichez le résultat au format YAML.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml
  • Copiez srcObject depuis examplebucket sous le nom exampleobject en interdisant à exampleobject d'écraser l'objet existant portant le même nom.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true
  • Copiez srcObject depuis examplebucket sous le nom exampleobject si la valeur ETag de srcObject est égale à 123.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123
  • Copiez srcObject depuis examplebucket sous le nom exampleobject si l'heure de modification de srcObject est antérieure au Mon, 11 May 2020 08:16:23 GMT.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-unmodified-since "Mon, 11 May 2020 08:16:23 GMT"
  • Copiez srcObject depuis examplebucket sous le nom exampleobject. Les métadonnées spécifiées dans la requête remplacent celles de srcObject.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.com
  • Copiez srcObject depuis examplebucket sous le nom exampleobject. Les tags spécifiés dans la requête sont ajoutés à exampleobject.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B"
  • Copiez srcObject depuis examplebucket sous le nom exampleobject en spécifiant l'ACL et la classe de stockage de l'objet.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --object-acl private --storage-class IA