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 |
|
Copie des objets au sein d'un bucket ou entre des buckets d'une 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 si vous copiez 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. |
|
|
|
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 : |
|
--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. |
La commande
copy-objectcorrespond à 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
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