Use o recurso de inventário para obter informações sobre os objetos em um bucket, como quantidade, tamanho, classe de armazenamento e status de criptografia. Para listar muitos objetos, utilize o recurso de inventário em vez da operação GetBucket (ListObjects). Este tópico descreve como usar o comando inventory para adicionar, consultar, listar ou exclua regras de inventário de um bucket.
Precauções
Você deve ter a permissão
oss:PutBucketInventorypara adicionar uma regra de inventário, a permissãooss:GetBucketInventorypara consultar uma regra de inventário e a permissãooss:DeleteBucketInventorypara exclua uma regra de inventário. Para mais informações, consulte Attach a custom policy to a RAM user.A partir da versão 1.6.16 do ossutil, você pode usar ossutil como o nome do binário na linha de comando para qualquer sistema operacional. Caso utilize uma versão do ossutil anterior à 1.6.16, especifique um nome de binário que corresponda ao seu sistema operacional. Para obter mais detalhes, consulte ossutil command reference.
Para saber mais sobre o recurso de inventário de bucket, consulte Bucket inventory.
Adicionar uma regra de inventário
Siga estas etapas para adicionar uma regra de inventário:
Crie uma função do Resource Access Management (RAM). A função deve ter permissões para ler todos os objetos no bucket source e gravar arquivos no bucket de destino. Para obter mais detalhes sobre a configuração da função, consulte Create a RAM role for a trusted Alibaba Cloud service.
Crie um arquivo local e configure a regra de inventário no formato XML no arquivo.
O ossutil lê a configuração de inventário do arquivo local e a adiciona ao bucket especificado.
-
Sintaxe do comando
ossutil inventory --method put oss://bucketname local_xml_fileA tabela a seguir descreve os parâmetros:
Parâmetro
Descrição
bucketname
O nome do bucket ao qual você deseja adicionar a regra de inventário.
local_xml_file
O nome do arquivo local que contém a configuração da regra de inventário. Exemplo:
localfile.xml. -
Exemplos
-
Crie um arquivo local chamado localfile.xml e configure a regra de inventário de acordo com o seu cenário.
Por exemplo, crie uma regra de inventário chamada inventorytest. Essa regra exporta um relatório de inventário semanal para um bucket de destino chamado destbucket. O relatório lista todos os objetos no bucket source que correspondem ao prefixo
dir/e inclui detalhes como a classe de armazenamento, a hora da última modificação e o status de upload multipart. O arquivo de manifesto é criptografado com o algoritmo de criptografia 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>ImportanteÉ possível adicionar várias regras de inventário a um bucket. O nome da regra (ID) é o identificador exclusivo de uma configuração de inventário. Se você adicionar uma regra com um ID que já existe, o sistema retornará um erro 409.
-
Adicione uma regra de inventário ao bucket examplebucket.
ossutil inventory --method put oss://examplebucket localfile.xmlA saída a seguir confirma a adição da regra de inventário.
0.299514(s) elapsed
-
Consultar uma regra de inventário específica
-
Sintaxe do comando
ossutil inventory --method get oss://bucketname inventory_id [--local_xml_file ]A descrição dos parâmetros é a seguinte:
Parâmetro
Descrição
bucketname
O nome do bucket cuja regra de inventário você deseja consultar.
inventory_id
O nome da regra de inventário.
local_xml_file
O nome do arquivo local no qual armazenar a configuração de inventário. Exemplo:
localfile.txt. Se você não especificar este parâmetro, o ossutil exibirá a configuração de inventário na tela. -
Exemplo
ossutil inventory --method get oss://examplebucket inventorytest localfile.txtA saída a seguir confirma que o sistema consultou a regra inventorytest no bucket examplebucket e gravou o resultado no arquivo localfile.txt.
0.212407(s) elapsed
Consultar todas as regras de inventário
-
Sintaxe do comando
ossutil inventory --method list oss://bucketname [--local_xml_file ] [--marker <value>]A tabela a seguir descreve os parâmetros:
Parâmetro
Descrição
bucketname
O nome do bucket cujas regras de inventário você deseja obter.
local_xml_file
O nome do arquivo XML local no qual armazenar as configurações de inventário. Se você não especificar este parâmetro, o ossutil exibirá as configurações de inventário na tela.
marker
A condição de filtro gera um arquivo de manifesto apenas para objetos que correspondem ao prefixo especificado. Se o campo estiver vazio, o sistema gerará um arquivo de manifesto para todos os objetos no bucket de destino.
-
Exemplo
ossutil inventory --method list oss://examplebucket localfile.txt destA saída a seguir confirma a consulta de todas as regras de inventário no bucket examplebucket cujos IDs começam com o prefixo
dest, com os resultados gravados no arquivo localfile.txt.0.216897(s) elapsed
Exclua uma regra de inventário específica
-
Sintaxe do comando
ossutil inventory --method delete oss://bucketname inventory_idA descrição dos parâmetros é a seguinte:
Parâmetro
Descrição
bucketname
O nome do bucket do qual você deseja exclua a regra de inventário.
inventory_id
O nome da regra de inventário.
-
Exemplo
ossutil inventory --method delete oss://examplebucket inventorytestA saída a seguir confirma a exclusão da regra inventorytest do bucket examplebucket.
0.212407(s) elapsed
Opções comuns
Para acessar um bucket em uma região diferente, use -e para especificar o endpoint. Para acessar um bucket pertencente a uma conta Alibaba Cloud diferente, use -i para o AccessKey ID e -k para o AccessKey Secret.
Por exemplo, para adicionar uma regra de inventário a um bucket chamado examplebucket que está na região China (Hangzhou) e pertence a outra conta Alibaba Cloud, execute o seguinte comando:
ossutil inventory --method put oss://examplebucket local_xml_file -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret