La función de inventario permite obtener información sobre los objetos de un bucket, como su cantidad, tamaño, clase de almacenamiento y estado de cifrado. Si necesita listar muchos objetos, utilice esta función en lugar de la operación GetBucket (ListObjects). En este tema se describe cómo usar el comando inventory para agregar, consultar, listar o eliminar reglas de inventario de un bucket.
Precauciones
Para agregar una regla de inventario, necesita el permiso
oss:PutBucketInventory. Para consultarla, requiereoss:GetBucketInventory, y para eliminarla,oss:DeleteBucketInventory. Para más información, consulte Attach a custom policy to a RAM user.A partir de ossutil v1.6.16, puede usar
ossutilcomo nombre del binario en la línea de comandos de cualquier sistema operativo. Si usa una versión anterior a la 1.6.16, debe especificar el nombre del binario que corresponda a su sistema operativo. Para más información, consulte ossutil command reference.Para más información sobre la función de inventario de buckets, consulte Bucket inventory.
Agregar una regla de inventario
Siga estos pasos para agregar una regla de inventario:
Cree un rol de Resource Access Management (RAM). Este rol debe tener permisos para leer todos los objetos del bucket de origen y escribir archivos en el bucket de destino. Para más información sobre cómo configurar el rol, consulte Create a RAM role for a trusted Alibaba Cloud service.
Cree un archivo local y configure la regla de inventario en formato XML dentro de dicho archivo.
ossutil lee la configuración de inventario desde el archivo local y luego la agrega al bucket especificado.
-
Sintaxis del comando
ossutil inventory --method put oss://bucketname local_xml_fileA continuación se describen los parámetros:
Parámetro
Descripción
bucketname
El nombre del bucket al que desea agregar la regla de inventario.
local_xml_file
El nombre del archivo local que contiene la configuración de la regla de inventario. Por ejemplo:
localfile.xml. -
Ejemplos
-
Cree un archivo local llamado localfile.xml y configure la regla de inventario según su escenario.
Por ejemplo, puede crear una regla de inventario llamada inventorytest. Esta regla exporta un informe semanal a un bucket de destino llamado destbucket. El informe enumera todos los objetos del bucket de origen que coinciden con el prefijo
dir/e incluye detalles como la clase de almacenamiento, la fecha de última modificación y el estado de carga multiparte. El archivo de manifiesto se cifra con el algoritmo AES256.<?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>inventorytest</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>dir/</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>1746495857602745</AccountId> <RoleArn>acs:ram::174649585760****:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Encryption> <SSE-OSS></SSE-OSS> </Encryption> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Weekly</Frequency> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>LastModifiedDate</Field> <Field>StorageClass</Field> <Field>IsMultipartUploaded</Field> <Field>ETag</Field> <Field>EncryptionStatus</Field> <Field>Size</Field> </OptionalFields> </InventoryConfiguration>ImportantePuede agregar varias reglas de inventario a un bucket. El nombre de la regla (ID) es el identificador único de cada configuración. Si agrega una regla con un ID que ya existe, el sistema devuelve un error 409.
-
Agregue una regla de inventario al bucket examplebucket.
ossutil inventory --method put oss://examplebucket localfile.xmlEl siguiente resultado indica que la regla de inventario se agregó correctamente.
0.299514(s) elapsed
-
Consultar una regla de inventario específica
-
Sintaxis del comando
ossutil inventory --method get oss://bucketname inventory_id [--local_xml_file ]A continuación se describen los parámetros:
Parámetro
Descripción
bucketname
El nombre del bucket cuya regla de inventario desea consultar.
inventory_id
El nombre de la regla de inventario.
local_xml_file
El nombre del archivo local donde se almacenará la configuración de inventario. Por ejemplo:
localfile.txt. Si no especifica este parámetro, la configuración se muestra en pantalla. -
Ejemplo
ossutil inventory --method get oss://examplebucket inventorytest localfile.txtEl siguiente resultado indica que se consultó la regla inventorytest del bucket examplebucket y que la respuesta se escribió en el archivo localfile.txt.
0.212407(s) elapsed
Consultar todas las reglas de inventario
-
Sintaxis del comando
ossutil inventory --method list oss://bucketname [--local_xml_file ] [--marker <value>]A continuación se describen los parámetros:
Parámetro
Descripción
bucketname
El nombre del bucket cuyas reglas de inventario desea obtener.
local_xml_file
El nombre del archivo XML local donde se almacenarán las configuraciones de inventario. Si no especifica este parámetro, las configuraciones se muestran en pantalla.
marker
La condición de filtro genera un archivo de manifiesto solo para los objetos que coinciden con el prefijo especificado. Si se deja vacío, se genera un archivo de manifiesto para todos los objetos del bucket de destino.
-
Ejemplo
ossutil inventory --method list oss://examplebucket localfile.txt destEl siguiente resultado indica que se consultaron todas las reglas de inventario del bucket examplebucket cuyos ID comienzan con el prefijo
dest, y que los resultados se escribieron en el archivo localfile.txt.0.216897(s) elapsed
Eliminar una regla de inventario específica
-
Sintaxis del comando
ossutil inventory --method delete oss://bucketname inventory_idA continuación se describen los parámetros:
Parámetro
Descripción
bucketname
El nombre del bucket del que desea eliminar la regla de inventario.
inventory_id
El nombre de la regla de inventario.
-
Ejemplo
ossutil inventory --method delete oss://examplebucket inventorytestEl siguiente resultado indica que se eliminó la regla inventorytest del bucket examplebucket.
0.212407(s) elapsed
Opciones comunes
Para acceder a un bucket en otra región, use -e y especifique el endpoint correspondiente. Si necesita acceder a un bucket de otra cuenta de Alibaba Cloud, utilice -i para el AccessKey ID y -k para el AccessKey secret.
Por ejemplo, para agregar una regla de inventario a un bucket llamado examplebucket, ubicado en la región China (Hangzhou) y perteneciente a otra cuenta de Alibaba Cloud, ejecute el siguiente comando:
ossutil inventory --method put oss://examplebucket local_xml_file -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret