Los metadatos de un objeto describen sus propiedades y se dividen en dos tipos: encabezados HTTP estándar y metadatos definidos por el usuario. Los encabezados HTTP permiten personalizar las políticas de las solicitudes HTTP, mientras que los metadatos definidos por el usuario sirven para identificar la finalidad o los atributos de un objeto. Con el comando set-meta puede establecer, modificar o eliminar los metadatos de los objetos ya cargados.
Notas de uso
Para configurar los metadatos de un solo objeto, necesita los permisos
oss:GetObject,oss:PutObject,oss:GetObjectVersionyoss:GetObjectAcl. Si va a configurar los metadatos de varios objetos en una operación por lotes, requiere los permisososs:GetObject,oss:PutObject,oss:GetObjectVersionyoss:ListObjects. Para más información, consulte Attach a custom access policy to a RAM user.En ossutil 1.6.16 y versiones posteriores, puede usar ossutil como nombre del binario en la línea de comandos. No es necesario cambiar este nombre según su sistema operativo. Si usa una versión anterior a la 1.6.16, debe ajustar el nombre del binario de acuerdo con su sistema operativo. Para más información, consulte ossutil command reference.
Después de configurar o actualizar los metadatos de un objeto con el comando set-meta, consulte dichos metadatos mediante el comando stat. Para más información, consulte stat.
Sintaxis del comando
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>]
A continuación se describen los parámetros y las opciones:
|
Parámetro u opción |
Descripción |
|
bucketname |
El nombre del bucket. |
|
prefix |
Los recursos de un bucket incluyen carpetas y archivos. |
|
header:value#header:value... |
Los metadatos, especificados como pares clave-valor. Las claves de los encabezados no distinguen entre mayúsculas y minúsculas, pero los valores sí. Para configurar varios encabezados de metadatos, sepárelos con signos de número (#). Por ejemplo: Están disponibles los siguientes encabezados:
Para más información sobre cómo usar los encabezados, consulte Manage object metadata. |
|
--update |
Actualiza los metadatos del objeto. Esta opción se puede abreviar como -u y no se puede combinar con la opción --delete. |
|
--delete |
Elimina los metadatos del objeto. No se puede utilizar junto con la opción --update. |
|
-r, --recursive |
Configura los metadatos de todos los objetos que coinciden con el prefijo especificado. Si omite esta opción, ossutil configura los metadatos únicamente del objeto indicado. |
|
-f, --force |
Fuerza la ejecución de la operación sin solicitar confirmación. |
|
--object-file |
Utilice esta opción para establecer, actualizar o eliminar los metadatos de varios objetos en una operación por lotes. Siga estos pasos:
Nota
Si ocurre un error en algún objeto, ossutil registra el mensaje correspondiente en el archivo de informe y continúa con el resto. La información de los objetos procesados correctamente no se guarda en dicho archivo. |
|
--snapshot-path |
Si especifica esta opción, se genera una instantánea solo para los objetos de la operación actual. Cuando un objeto ya cuenta con una instantánea, se omite su procesamiento. Nota
Esta opción debe usarse junto con -r, --recursive o --object-file. |
|
--disable-ignore-error |
Evita que se ignoren los errores durante las operaciones por lotes. |
|
--version-id |
El identificador de versión del objeto. Esta opción solo aplica a los objetos almacenados en buckets con el control de versiones habilitado o suspendido. |
|
--include |
Incluye todos los objetos que cumplen la condición especificada. Para más información, consulte The --include and --exclude options. |
|
--exclude |
Excluye los objetos que cumplen las condiciones especificadas. Para más información, consulte The --include and --exclude options. |
Establecer o actualizar metadatos
En los ejemplos siguientes, que no incluyen la opción --update, si omite la opción header:value#header:value..., solo se conservan los metadatos definidos por el usuario que comienzan con X-Oss-Meta-, sin alterar sus valores. En el caso de los encabezados HTTP, ossutil entra en modo interactivo y le pide confirmar si desea conservarlos.
-
Ejemplo 1: Establecer o actualizar los metadatos de un solo objeto
-
Configure la lista de control de acceso (ACL) del objeto exampleobject.txt, ubicado en el bucket examplebucket, como privada.
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:private -
Cambie la clase de almacenamiento de una versión específica del objeto exampleobject.txt, dentro del bucket examplebucket, a Standard.
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:Standard --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk -
Modifique la clase de almacenamiento de una versión específica del objeto exampleobject.txt, en el bucket examplebucket, a Cold Archive.
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:ColdArchive --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRkNotaLa clase de almacenamiento no cambia durante la ejecución del comando set-meta. El cambio surte efecto cuando finaliza el comando.
Para más información sobre cómo obtener las versiones de un objeto, consulte ls.
-
Actualice la ACL del objeto exampleobject.txt, alojado en el bucket examplebucket, a public-read.
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:public-read --updateCuando utiliza la opción --update, solo se actualizan los metadatos de los encabezados indicados. Los valores de esos encabezados se reemplazan y el resto de los metadatos existentes permanece intacto. Por ejemplo, el comando modifica únicamente la ACL del objeto exampleobject.txt a public-read y conserva todos sus demás metadatos.
-
-
Ejemplo 2: Establecer o actualizar los metadatos de varios objetos de la misma carpeta mediante una operación por lotes
Al configurar o modificar los metadatos de varios objetos en una operación por lotes, si ocurre un error en alguno de ellos, ossutil registra el mensaje correspondiente en un archivo de informe dentro de la carpeta ossutil_output. Los objetos procesados correctamente no se incluyen en dicho archivo.
-
Configurar los metadatos de los objetos que coinciden con un prefijo específico
Use la opción -r para cambiar el comportamiento de caché (Cache-Control) a no-cache y la ACL (x-oss-object-acl) a private en todos los objetos del bucket examplebucket que coincidan con el prefijo
src.ossutil set-meta oss://examplebucket/src Cache-Control:no-cache#X-Oss-Object-Acl:private -r -
Modificar los metadatos de los objetos que cumplen ciertas condiciones de filtrado
-
Combine las opciones -r y -u para cambiar la clase de almacenamiento a Infrequent Access (IA) en todos los objetos de tipo .jpg ubicados en la carpeta desfolder/ del bucket examplebucket.
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:IA --include "*.jpg" -u -r -
Emplee las opciones -r y -u para asignar la clase de almacenamiento Archive Storage a los objetos de la carpeta desfolder/ del bucket examplebucket, siempre que su nombre contenga abc y su tipo no sea .jpg ni .txt.
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:Archive --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -u -r
ImportanteSi utiliza el comando set-meta para cambiar la clase de almacenamiento de un objeto Cold Archive o Deep Cold Archive mayor a 100 MB, la operación podría fallar por un tiempo de espera agotado en el servidor. Para modificar la clase de almacenamiento de estos objetos, use el comando cp.
-
-
-
Ejemplo 3: Establecer o actualizar los metadatos de varios objetos en carpetas iguales o distintas
-
Objetos en carpetas distintas
Para configurar o actualizar los metadatos de varios objetos distribuidos en distintas carpetas de un mismo bucket, siga estos pasos. Suponga que exampleobject1.jpg está en la carpeta raíz de examplebucket, exampleobject2.png en la carpeta dir1/ y exampleobject3.txt en la carpeta dir2/.
-
Escriba los nombres de los objetos en un archivo local llamado localfile.txt para poder configurar o actualizar sus metadatos.
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txt -
Configure o actualice los metadatos de los objetos indicados.
Mediante la opción --object-file, cambie el comportamiento de caché (Cache-Control) a no-cache y la ACL (x-oss-object-acl) a private para varios objetos del bucket examplebucket, y habilite las instantáneas.
ossutil set-meta oss://examplebucket Cache-Control:no-cache#X-Oss-Object-Acl:private --update --object-file localfile.txt --snapshot-path dir/
-
-
Objetos en la misma carpeta
-
Método 1
Consulte preceding example for objects in different folders para establecer o actualizar los metadatos de varios objetos dentro de la misma carpeta.
-
Método 2
Consulte Example 2 para configurar o actualizar los metadatos de varios objetos en una misma carpeta.
-
-
-
Salida de ejemplo
Si la operación se completa correctamente, la salida muestra el tiempo transcurrido. A continuación se presenta un ejemplo:
0.106852(s) elapsed
Eliminar metadatos personalizados
La opción --delete elimina únicamente los metadatos personalizados que comienzan con X-Oss-Meta-.
-
Ejemplo 1: Eliminar los metadatos personalizados de un solo objeto
Elimine los metadatos personalizados que empiezan con
X-Oss-Meta-del objeto exampleobject.txt, ubicado en el bucket examplebucket. El valor del encabezado debe quedar vacío.ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Meta-Createdby --delete -
Ejemplo 2: Eliminar los metadatos personalizados de varios objetos mediante una operación por lotes
Para quitar los metadatos personalizados de varios objetos en una operación por lotes, siga estos pasos:
-
Anote en un archivo local llamado localfile.txt los nombres de los objetos cuyos metadatos personalizados desea eliminar.
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txt -
Elimine los metadatos personalizados de los objetos.
Con la opción --object-file, elimine en lote los metadatos personalizados que inician con
X-Oss-Meta-de varios objetos del bucket examplebucket. El valor del encabezado debe quedar vacío.ossutil set-meta oss://examplebucket X-Oss-Meta-Location --delete --object-file localfile.txt --snapshot-path dir/
-
-
Salida de ejemplo
Si la operación se completa correctamente, la salida muestra el tiempo transcurrido. A continuación se presenta un ejemplo:
0.106846(s) elapsed
Opciones comunes
Para acceder a un bucket de otra región, utilice -e y especifique el endpoint correspondiente. Si necesita acceder a un bucket propiedad de otra cuenta de Alibaba Cloud, indique el AccessKey ID con -i y el AccessKey secret con -k.
Por ejemplo, ejecute el siguiente comando para configurar la ACL del objeto testobject.jpg como privada. Este objeto se encuentra en el bucket testbucket, perteneciente a otra cuenta de Alibaba Cloud y ubicado en la región China (Shanghai).
ossutil set-meta oss://testbucket/testobject.jpg X-Oss-Object-Acl:private -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret