Use PutBucketInventory e configure uma regra de inventário de um bucket.
Observações
Use um inventário para obter informações sobre os objetos em um bucket, como a contagem de objetos, tamanho, classe de armazenamento e status de criptografia. Configure as regras de inventário e observe o seguinte:
Crie uma função RAM e configure uma regra de inventário. Essa função requer permissões para ler todos os objetos do bucket de source e gravar objetos no bucket de destino. Recomendamos usar o console do OSS; configure sua primeira regra de inventário com ele, pois o console facilita; crie uma função RAM com as permissões necessárias. Para obter detalhes sobre as permissões necessárias para a função RAM, consulte bucket inventory.
Configure até 1.000 regras de inventário para um único bucket.
Os buckets de source e de destino para os arquivos de inventário exportados devem estar na mesma região.
Ative o inventário incremental entrando em contato com o suporte técnico. Esse recurso está disponível apenas na região do México.
Permissões
Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM associados a uma conta Alibaba Cloud não têm permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de RAM policies ou Bucket Policy.
|
API |
Ação |
Descrição |
|
PutBucketInventory |
oss:PutBucketInventory |
Configura inventários para um bucket. |
Sintaxe da requisição
O parâmetro de query string 'inventoryId' é obrigatório. Seu valor deve corresponder ao do elemento 'Id' no corpo da requisição.
As opções LastModifyBeginTimeStamp, LastModifyEndTimeStamp, LowerSizeBound, UpperSizeBound e StorageClass estão disponíveis apenas nas regiões China (Qingdao), China (Hohhot) e Germany (Frankfurt).
PUT /?inventory&inventoryId=report1 HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: Mon, 31 Oct 2016 12:00:00 GMT
Authorization: authorization string
Content-Length: length
<?xml version="1.0" encoding="UTF-8"?>
<InventoryConfiguration>
<Id>report1</Id>
<IsEnabled>true</IsEnabled>
<Destination>
<OSSBucketDestination>
<Format>CSV</Format>
<AccountId>1000000000000000</AccountId>
<RoleArn>acs:ram::1000000000000000:role/AliyunOSSRole</RoleArn>
<Bucket>acs:oss:::destination-bucket</Bucket>
<Prefix>prefix1</Prefix>
<Encryption>
<SSE-KMS>
<KeyId>keyId</KeyId>
</SSE-KMS>
</Encryption>
</OSSBucketDestination>
</Destination>
<Schedule>
<Frequency>Monthly</Frequency>
<DayOfMonth>1</DayOfMonth>
</Schedule>
<IncludedObjectVersions>All</IncludedObjectVersions>
<OptionalFields>
<Field>Size</Field>
<Field>LastModifiedDate</Field>
<Field>TransitionTime</Field>
<Field>ETag</Field>
<Field>StorageClass</Field>
<Field>IsMultipartUploaded</Field>
<Field>EncryptionStatus</Field>
</OptionalFields>
<IncrementalInventory>
<IsEnabled>true</IsEnabled>
<Schedule>
<Frequency>600</Frequency>
</Schedule>
<OptionalFields>
<Field>SequenceNumber</Field>
<Field>RecordType</Field>
<Field>RecordTimestamp</Field>
<Field>Requester</Field>
<Field>RequestId</Field>
<Field>SourceIp</Field>
<Field>Size</Field>
<Field>StorageClass</Field>
<Field>LastModifiedDate</Field>
<Field>ETag</Field>
<Field>IsMultipartUploaded</Field>
<Field>ObjectType</Field>
<Field>ObjectAcl</Field>
<Field>Crc64</Field>
<Field>EncryptionStatus</Field>
</OptionalFields>
</IncrementalInventory>
</InventoryConfiguration>
Elementos da requisição
Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
Id | String | Sim | report1 | O nome personalizado do inventário. O nome deve atender aos seguintes requisitos:
|
IsEnabled | Boolean | Sim | true | Indica se o inventário está ativado. Valores válidos:
|
Filter | Contêiner | Não | N/A | Contêiner do filtro, que especifique os critérios dos objetos a serem incluídos no inventário. |
Prefix | String | Não | Pics/ | O prefixo para filtrar objetos. Nó pai: Filter |
LastModifyBeginTimeStamp | String | Não | 1637883649 | O início do intervalo de tempo da última modificação para os objetos. O valor é um timestamp UNIX em segundos. Intervalo de valores: [1262275200, 253402271999] |
LastModifyEndTimeStamp | String | Não | 1638347592 | O fim do intervalo de tempo da última modificação para os objetos. O valor é um timestamp UNIX em segundos. Intervalo de valores: [1262275200, 253402271999] |
LowerSizeBound | String | Não | 1024 | O tamanho mínimo (em bytes) dos objetos a serem incluídos no inventário. O valor deve ser maior ou igual a 0 B e menor ou igual a 48,8 TB. |
UpperSizeBound | String | Não | 1048576 | O tamanho máximo (em bytes) dos objetos a serem incluídos no inventário. O valor deve ser maior que 0 B e menor ou igual a 48,8 TB. |
StorageClass | String | Não | Standard,IA | As classes de armazenamento dos objetos a serem incluídos no inventário. Especifique várias classes de armazenamento. Valores válidos:
|
Destination | Contêiner | Sim | N/A | Contêiner com informações sobre o destino onde os relatórios de inventário são armazenados. |
OSSBucketDestination | Contêiner | Sim | N/A | Contêiner com informações sobre o bucket onde os relatórios de inventário são armazenados. Nó pai: Destination |
Format | String | Sim | CSV | O formato do relatório de inventário. O relatório é um arquivo CSV compactado com GZIP. Valores válidos: CSV, Parquet (O formato Parquet atualmente está disponível apenas na região UK (London).) Nó pai: OSSBucketDestination |
AccountId | String | Sim | 100000000000000 | O ID da conta Alibaba Cloud que possui o bucket de destino. Nó pai: OSSBucketDestination |
RoleArn | String | Sim | acs:ram::100000000000000:role/AliyunOSSRole | O Alibaba Cloud Resource Name (ARN) da função RAM com permissões para ler todos os objetos do bucket de source e gravar objetos no bucket de destino. O formato é Nó pai: OSSBucketDestination |
Bucket | String | Sim | acs:oss:::bucket_0001 | O bucket de destino para o relatório de inventário. Nó pai: OSSBucketDestination |
Prefix | String | Não | prefix1/ | O prefixo do caminho onde os arquivos de relatório de inventário são armazenados. Nó pai: OSSBucketDestination |
Encryption | Contêiner | Não | N/A | Contêiner da configuração de criptografia no lado do servidor para o relatório de inventário. Valores válidos:
Nó pai: OSSBucketDestination Para obter mais informações sobre criptografia no lado do servidor, consulte Server-side encryption. |
SSE-OSS | Contêiner | Não | N/A | Contêiner da configuração de criptografia SSE-OSS. Nó pai: Encryption |
SSE-KMS | Contêiner | Não | N/A | Contêiner da configuração de criptografia SSE-KMS. Nó pai: Encryption |
KeyId | String | Não | keyId | O ID da CMK gerenciada pelo KMS. Nó pai: SSE-KMS |
Schedule | Contêiner | Sim | N/A | Contêiner da programação de geração do relatório de inventário. |
Frequency | String | Sim | Daily | Especifique a frequência para geração do relatório de inventário. Valores válidos:
Nó pai: Schedule |
DayOfMonth | Inteiro positivo | Não | 1 | Se Frequency estiver definido como Monthly, especifique o dia do mês para gerar o inventário. O valor deve ser um número inteiro positivo de 1 a 31.
Nota Esta data especifique quando a tarefa de inventário começa, e não quando o relatório é entregue. Como a geração de inventário é uma tarefa assíncrona cuja duração depende da contagem de objetos, o relatório é entregue após essa data. Nó pai: Schedule |
AutoDelete | Boolean | Não | true | Especifique se a configuração de inventário deve ser excluída após a geração de um inventário único. Se true, exclua a configuração de inventário após a geração. Este elemento é válido apenas quando Frequency está definido como Once. Valores válidos: true, false Nó pai: Schedule |
IncludedObjectVersions | String | Sim | All | Especifique se as versões dos objetos devem ser incluídas no inventário. Valores válidos:
|
OptionalFields | Contêiner | Não | N/A | Contêiner dos campos opcionais a serem incluídos no relatório de inventário. |
Field | String | Não | Size | Os campos opcionais a serem incluídos no relatório de inventário.
|
IncrementalInventory | Contêiner | Não | N/A | Contêiner da configuração de inventário incremental. |
IsEnabled | Boolean | Sim | true | Especifique se o inventário incremental deve ser ativado. Valores válidos:
Se este elemento for definido como true, o inventário incremental é ativado e entra em vigor mesmo se InventoryConfiguration/IsEnabled estiver definido como false. Nó pai: IncrementalInventory |
Schedule | Contêiner | Sim | N/A | Contêiner da programação de geração do inventário incremental. Nó pai: IncrementalInventory |
Frequency | Inteiro positivo | Sim | 600 | A frequência de geração para o inventário incremental, em segundos. O sistema usa uma frequência fixa de 600 segundos. Em cada período, um prefixo de diretório é criado automaticamente, junto com um arquivo de manifesto correspondente e vários arquivos CSV gerados durante esse período. Não há suporte para frequências personalizadas. Nó pai: Schedule |
OptionalFields | Contêiner | Não | N/A | Contêiner das propriedades a serem incluídas no arquivo de inventário incremental. Nó pai: IncrementalInventory |
Field | String | Não | Size | Os campos a serem incluídos no inventário incremental. Nó pai: OptionalFields
|
Cabeçalhos de resposta
Esta operação retorna apenas cabeçalhos de resposta comuns, como Content-Length e Date. Para obter detalhes, consulte Common response headers.
Exemplos
Configuração de inventário
-
Exemplo de requisição
PUT /?inventory&inventoryId=report1 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>report1</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>Pics/</Prefix> <LastModifyBeginTimeStamp>1637883649</LastModifyBeginTimeStamp> <LastModifyEndTimeStamp>1638347592</LastModifyEndTimeStamp> <LowerSizeBound>1024</LowerSizeBound> <UpperSizeBound>1048576</UpperSizeBound> <StorageClass>Standard,IA</StorageClass> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>prefix1/</Prefix> <Encryption> <SSE-KMS> <KeyId>keyId</KeyId> </SSE-KMS> </Encryption> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Daily</Frequency> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>TransistionTime</Field> <Field>ETag</Field> <Field>StorageClass</Field> <Field>IsMultipartUploaded</Field> <Field>EncryptionStatus</Field> </OptionalFields> </InventoryConfiguration> -
Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Configuração de inventário mensal
A requisição a seguir configura um inventário para gerar um relatório no terceiro dia de cada mês.
-
Exemplo de requisição
PUT /?inventory&inventoryId=monthly-report HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>monthly-report</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>logs/</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>monthly-inventory/</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Monthly</Frequency> <DayOfMonth>3</DayOfMonth> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>StorageClass</Field> <Field>IsMultipartUploaded</Field> <Field>EncryptionStatus</Field> </OptionalFields> </InventoryConfiguration> -
Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Configuração de inventário único
-
Exemplo de requisição
PUT /?inventory&inventoryId=once-report HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>once-report</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>log/</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>once-inventory/</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Once</Frequency> <AutoDelete>true</AutoDelete> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>StorageClass</Field> </OptionalFields> </InventoryConfiguration> -
Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Configuração de inventário incremental
-
Exemplo de requisição
PUT /?inventory&inventoryId=report1 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>Report-1</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>test</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>12xxxxxx29</AccountId> <RoleArn>acs:ram::12xxxxxx29:role/bucket-inventory-role</RoleArn> <Bucket>acs:oss:::test-inc-bi-bj</Bucket> <Prefix>Report-1</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Weekly</Frequency> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>StorageClass</Field> </OptionalFields> <IncrementalInventory> <IsEnabled>true</IsEnabled> <Schedule> <Frequency>600</Frequency> </Schedule> <OptionalFields> <Field>SequenceNumber</Field> <Field>RecordType</Field> <Field>RecordTimestamp</Field> <Field>Requester</Field> <Field>RequestId</Field> <Field>SourceIp</Field> <Field>Size</Field> <Field>StorageClass</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>IsMultipartUploaded</Field> <Field>ObjectType</Field> <Field>ObjectAcl</Field> <Field>Crc64</Field> <Field>EncryptionStatus</Field> </OptionalFields> </IncrementalInventory> </InventoryConfiguration> -
Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
SDK
É possível chamar esta operação com os SDKs das seguintes linguagens:
ossutil CLI
O comando do ossutil para a operação PutBucketInventory é put-bucket-inventory.
Códigos de erro
Código de erro | Código de status HTTP | Descrição |
InvalidArgument | 400 | Um ou mais parâmetros especificados são inválidos. |
InventoryExceedLimit | 400 | O número de regras de inventário configuradas excede o limite. |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | A regra de inventário já existe. |