Les métadonnées d'objet décrivent les propriétés d'un objet. Elles se composent de deux types : les en-têtes HTTP standard et les métadonnées définies par l'utilisateur. Utilisez les en-têtes HTTP pour personnaliser les politiques des requêtes HTTP et les métadonnées définies par l'utilisateur pour identifier la finalité ou les attributs d'un objet. La commande set-meta permet de définir, modifier ou supprimer les métadonnées des objets téléchargés.
Remarques
Pour définir les métadonnées d'un seul objet, vous devez disposer des autorisations
oss:GetObject,oss:PutObject,oss:GetObjectVersionetoss:GetObjectAcl. Pour définir les métadonnées de plusieurs objets lors d'une opération par lot, vous devez disposer des autorisationsoss:GetObject,oss:PutObject,oss:GetObjectVersionetoss:ListObjects. Pour plus d'informations, reportez-vous à la rubrique Attacher une politique d'accès personnalisée à un utilisateur RAM.À partir de la version 1.6.16 d'ossutil, utilisez
ossutilcomme nom binaire dans la ligne de commande. Il n'est pas nécessaire de remplacer le nom binaire en fonction de votre système d'exploitation. Si votre version d'ossutil est antérieure à la 1.6.16, remplacez le nom binaire en fonction de votre système d'exploitation. Pour plus d'informations, reportez-vous à la rubrique Référence des commandes ossutil.Après avoir défini ou mis à jour les métadonnées d'un objet à l'aide de la commande set-meta, consultez les métadonnées de l'objet à l'aide de la commande stat. Pour plus d'informations, reportez-vous à la rubrique stat.
Syntaxe de la commande
ossutil set-meta oss://bucketname[/prefix]
[header:value#header:value...]
[--update]
[--delete]
[-r, --recursive]
[-f, --force]
[--object-file <value>]
[--snapshot-path <value>]
[--disable-ignore-error]
[--version-id <value>]
[--include <value>]
[--exclude <value>]
Le tableau suivant décrit les paramètres et options :
|
Paramètre ou option |
Description |
|
bucketname |
Nom du bucket. |
|
prefix |
Les ressources d'un bucket incluent les dossiers et les fichiers. |
|
header:value#header:value... |
Métadonnées spécifiées sous forme de paires clé-valeur. Les clés d'en-tête ne sont pas sensibles à la casse, mais les valeurs le sont. Pour définir plusieurs en-têtes de métadonnées, séparez-les par des dièses (#). Exemple : Les en-têtes suivants sont disponibles :
Pour plus d'informations sur l'utilisation des en-têtes, reportez-vous à la rubrique Gérer les métadonnées d'objet. |
|
--update |
Met à jour les métadonnées de l'objet. Cette option peut être abrégée en -u et ne peut pas être utilisée avec l'option --delete. |
|
--delete |
Supprime les métadonnées de l'objet. Cette option ne peut pas être utilisée avec l'option --update. |
|
-r, --recursive |
Définit les métadonnées pour tous les objets correspondant au préfixe spécifié. Sans cette option, ossutil définit les métadonnées uniquement pour l'objet spécifié. |
|
-f, --force |
Force l'exécution de l'opération sans demande de confirmation. |
|
--object-file |
Utilisez cette option pour définir, mettre à jour ou supprimer les métadonnées de plusieurs objets lors d'une opération par lot. Procédez comme suit :
Remarque
Si une erreur survient pour un objet, ossutil enregistre le message d'erreur dans le fichier de rapport et poursuit l'opération sur les autres objets. Les informations concernant les objets traités avec succès ne figurent pas dans le fichier de rapport. |
|
--snapshot-path |
Si vous spécifiez cette option, un instantané est généré uniquement pour les objets concernés par l'opération actuelle. Si un instantané existe déjà pour un objet, l'opération est ignorée pour cet objet. Remarque
Cette option doit être utilisée conjointement avec l'option -r, --recursive ou --object-file. |
|
--disable-ignore-error |
N'ignore pas les erreurs lors des opérations par lot. |
|
--version-id |
ID de version de l'objet. Cette option s'applique uniquement aux objets situés dans des buckets pour lesquels le contrôle de version est activé ou suspendu. |
|
--include |
Inclut tous les objets répondant à la condition spécifiée. Pour plus d'informations, reportez-vous à la rubrique Options --include et --exclude. |
|
--exclude |
Exclut les objets répondant aux conditions spécifiées. Pour plus d'informations, reportez-vous à la rubrique Options --include et --exclude. |
Définir ou mettre à jour les métadonnées
Dans les exemples suivants qui n'incluent pas l'option --update, si vous ne spécifiez pas l'option header:value#header:value..., seules les métadonnées définies par l'utilisateur commençant par X-Oss-Meta- sont conservées et leurs valeurs ne sont pas modifiées. Pour les en-têtes HTTP, ossutil passe en mode interactif et vous invite à confirmer leur conservation.
-
Exemple 1 : Définir ou mettre à jour les métadonnées d'un seul objet
-
Définissez la liste de contrôle d'accès (ACL) de l'objet exampleobject.txt dans le bucket examplebucket sur private.
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:private -
Définissez la classe de stockage d'une version spécifique de l'objet exampleobject.txt dans le bucket examplebucket sur Standard.
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:Standard --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk -
Définissez la classe de stockage d'une version spécifique de l'objet exampleobject.txt dans le bucket examplebucket sur Cold Archive.
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:ColdArchive --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRkRemarqueLa classe de stockage n'est pas modifiée pendant l'exécution de la commande set-meta. La modification prend effet une fois la commande terminée.
Pour plus d'informations sur l'obtention des versions d'objets, reportez-vous à la rubrique ls.
-
Mettez à jour l'ACL de l'objet exampleobject.txt dans le bucket examplebucket sur public-read.
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:public-read --updateLorsque vous utilisez l'option --update, seules les métadonnées des en-têtes spécifiés sont mises à jour. Les valeurs de ces en-têtes sont remplacées et toutes les autres métadonnées existantes de l'objet restent inchangées. Par exemple, la commande met uniquement à jour l'ACL de l'objet exampleobject.txt sur public-read. Toutes les autres métadonnées de l'objet sont conservées.
-
-
Exemple 2 : Définir ou mettre à jour les métadonnées de plusieurs objets dans le même dossier lors d'une opération par lot
Lorsque vous définissez ou modifiez les métadonnées de plusieurs objets lors d'une opération par lot, si une erreur survient pour un objet, ossutil enregistre le message d'erreur correspondant dans un fichier de rapport situé dans le dossier ossutil_output. Les objets traités avec succès ne figurent pas dans le fichier de rapport.
-
Définir les métadonnées des objets correspondant à un préfixe spécifié
Utilisez l'option -r pour modifier le comportement de mise en cache (Cache-Control) sur no-cache et l'ACL (x-oss-object-acl) sur private pour tous les objets correspondant au préfixe
srcdans le bucket examplebucket.ossutil set-meta oss://examplebucket/src Cache-Control:no-cache#X-Oss-Object-Acl:private -r -
Modifier les métadonnées des objets correspondant à des conditions de filtre spécifiées
-
Utilisez les options -r et -u pour modifier la classe de stockage sur Infrequent Access (IA) pour tous les objets de type .jpg dans le dossier desfolder/ du bucket examplebucket.
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:IA --include "*.jpg" -u -r -
Utilisez les options -r et -u pour modifier la classe de stockage sur Archive Storage pour les objets du dossier desfolder/ du bucket examplebucket si leurs noms de fichier contiennent abc et si leurs types de fichier ne sont ni .jpg ni .txt.
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:Archive --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -u -r
ImportantLorsque vous utilisez la commande set-meta pour modifier la classe de stockage d'un objet Cold Archive ou Deep Cold Archive de plus de 100 Mo, l'opération peut échouer en raison d'un délai d'expiration du serveur. Pour modifier la classe de stockage de ces objets, utilisez la commande cp.
-
-
-
Exemple 3 : Définir ou mettre à jour les métadonnées de plusieurs objets dans le même dossier ou dans des dossiers différents
-
Objets dans des dossiers différents
Pour définir ou mettre à jour les métadonnées de plusieurs objets situés dans différents dossiers d'un bucket, suivez les étapes ci-dessous. Par exemple, exampleobject1.jpg se trouve dans le dossier racine de examplebucket, exampleobject2.png dans le dossier dir1/ et exampleobject3.txt dans le dossier dir2/.
-
Inscrivez plusieurs objets dans un fichier local nommé localfile.txt afin de définir ou de mettre à jour leurs métadonnées.
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txt -
Définissez ou mettez à jour les métadonnées des objets spécifiés.
Utilisez l'option --object-file pour modifier le comportement de mise en cache (Cache-Control) sur no-cache et l'ACL (x-oss-object-acl) sur private pour plusieurs objets dans le bucket examplebucket, et activez les instantanés.
ossutil set-meta oss://examplebucket Cache-Control:no-cache#X-Oss-Object-Acl:private --update --object-file localfile.txt --snapshot-path dir/
-
-
Objets dans le même dossier
-
Méthode 1
Reportez-vous à l'exemple précédent pour les objets dans des dossiers différents afin de définir ou de mettre à jour les métadonnées de plusieurs objets dans le même dossier.
-
Méthode 2
Reportez-vous à l'Exemple 2 afin de définir ou de mettre à jour les métadonnées de plusieurs objets dans le même dossier.
-
-
-
Sortie d'exemple
Si l'opération réussit, la sortie affiche le temps écoulé. Voici un exemple de sortie :
0.106852(s) elapsed
Supprimer les métadonnées personnalisées
L'option --delete supprime uniquement les métadonnées personnalisées commençant par X-Oss-Meta-.
-
Exemple 1 : Supprimer les métadonnées personnalisées d'un seul objet
Supprimez les métadonnées personnalisées commençant par
X-Oss-Meta-pour l'objet exampleobject.txt dans le bucket examplebucket. La valeur de l'en-tête doit être vide.ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Meta-Createdby --delete -
Exemple 2 : Supprimer les métadonnées personnalisées de plusieurs objets lors d'une opération par lot
Pour supprimer les métadonnées personnalisées de plusieurs objets lors d'une opération par lot, suivez les étapes ci-dessous :
-
Inscrivez les noms des objets dont vous souhaitez supprimer les métadonnées personnalisées dans un fichier local nommé localfile.txt.
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txt -
Supprimez les métadonnées personnalisées des objets.
Utilisez l'option --object-file pour supprimer les métadonnées personnalisées commençant par
X-Oss-Meta-pour plusieurs objets dans le bucket examplebucket lors d'une opération par lot. La valeur de l'en-tête doit être vide.ossutil set-meta oss://examplebucket X-Oss-Meta-Location --delete --object-file localfile.txt --snapshot-path dir/
-
-
Sortie d'exemple
Si l'opération réussit, la sortie affiche le temps écoulé. Voici un exemple de sortie :
0.106846(s) elapsed
Options courantes
Pour accéder à un bucket situé dans une autre région, utilisez -e pour spécifier le endpoint. Pour accéder à un bucket appartenant à un autre compte Alibaba Cloud, utilisez -i pour l'AccessKey ID et -k pour l'AccessKey Secret.
Par exemple, exécutez la commande suivante pour définir l'ACL de l'objet testobject.jpg sur private. L'objet se trouve dans le bucket testbucket, situé dans la région Chine (Shanghai) et appartenant à un autre compte Alibaba Cloud.
ossutil set-meta oss://testbucket/testobject.jpg X-Oss-Object-Acl:private -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret