La commande copy-object permet de copier des objets stockés dans le même bucket ou dans des buckets différents situés dans la 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 une copie entre buckets situés dans la même région, nous recommandons d'utiliser cette opération uniquement pour les objets de moins de 1 Go. Pour les objets plus volumineux, exécutez la commande upload-part-copy.
Si l'objet source est un lien symbolique, seul ce lien est copié. L'objet ciblé par le 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 propriétaire du compte ou l'administrateur doit accorder les autorisations nécessaires via des politiques RAM ou une Bucket Policy.
|
API |
Action |
Description |
|
CopyObject |
|
Copie des objets au sein d'un bucket ou entre des buckets situés dans la même région. |
|
|
||
|
|
Cette autorisation est également requise si vous spécifiez la version de l'objet source via versionId. |
|
|
|
Ces autorisations sont nécessaires pour copier les tags d'objet via x-oss-tagging. |
|
|
|
||
|
|
Cette autorisation est également requise si vous spécifiez les tags d'une version spécifique de l'objet source via versionId. |
|
|
|
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. |
|
|
|
Syntax
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 utilisée pour accéder à l'objet source. Format : |
|
--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 de l'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 de l'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 de l'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. |
La commande copy-object correspond à l'opération API CopyObject. Pour plus d'informations sur les paramètres, consultez la rubrique CopyObject.
Pour plus d'informations sur les options de ligne de commande globales prises en charge, consultez la section Options de ligne de commande.
Exemples
-
Copiez
srcObjectdepuissrcBucketversexamplebucketsous le nomexampleobject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject -
Copiez
srcObjectdepuisexamplebucketsous le nomexampleobject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject -
Copiez
srcObjectdepuisexamplebucketsous le nomexampleobjectet affichez le résultat au format JSON.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json -
Copiez
srcObjectdepuisexamplebucketsous le nomexampleobjectet affichez le résultat au format YAML.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml -
Copiez
srcObjectdepuisexamplebucketsous le nomexampleobjecten interdisant àexampleobjectd'é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
srcObjectdepuisexamplebucketsous le nomexampleobjectsi la valeur ETag desrcObjectest égale à 123.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123 -
Copiez
srcObjectdepuisexamplebucketsous le nomexampleobjectsi l'heure de modification desrcObjectest 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
srcObjectdepuisexamplebucketsous le nomexampleobject. Les métadonnées spécifiées dans la requête remplacent celles desrcObject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.com -
Copiez
srcObjectdepuisexamplebucketsous le nomexampleobject. 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
srcObjectdepuisexamplebucketsous le nomexampleobjecten 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