Use a operação PutBucketInventory para configurar uma regra de inventário em um bucket.
Observações
O inventário permite obter informações sobre os objetos de um bucket, como quantidade de objetos, tamanho, classe de armazenamento e status de criptografia. Ao configurar regras de inventário, observe o seguinte:
Antes de configurar uma regra de inventário, crie uma função do RAM. Essa função precisa ter permissões para ler todos os objetos do bucket de origem e gravar objetos no bucket de destino. Recomendamos usar o console do OSS para configurar sua primeira regra de inventário, pois o console auxilia na criação da função do RAM com as permissões necessárias. Para obter detalhes sobre as permissões exigidas para a função do RAM, consulte inventário de bucket.
É possível configurar até 1.000 regras de inventário por bucket.
Os buckets de origem e de destino dos arquivos de inventário exportados devem estar na mesma região.
Para ativar o inventário incremental, entre em contato com o suporte técnico. Esse recurso tem suporte apenas na região do México.
Permissões
Por padrão, uma conta Alibaba Cloud possui permissões totais. Usuários ou funções do RAM vinculados a uma conta Alibaba Cloud não têm nenhuma permissão por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder permissões de operação por meio de políticas do RAM ou Bucket Policy.
|
API |
Ação |
Descrição |
|
PutBucketInventory |
oss:PutBucketInventory |
Configura inventários para um bucket. |
Sintaxe da solicitação
O parâmetro de string de consulta 'inventoryId' é obrigatório. Seu valor deve corresponder ao do elemento 'Id' no corpo da solicitação.
As opções LastModifyBeginTimeStamp, LastModifyEndTimeStamp, LowerSizeBound, UpperSizeBound e StorageClass estão disponíveis apenas nas regiões China (Qingdao), China (Hohhot) e Alemanha (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 solicitação
Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
Id | String | Sim | report1 | 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 | Container | Não | N/A | Contêiner para o filtro, que especifica os critérios dos objetos a serem incluídos no inventário. |
Prefix | String | Não | Pics/ | Prefixo para filtragem de objetos. Nó pai: Filter |
LastModifyBeginTimeStamp | String | Não | 1637883649 | Início do intervalo de tempo da última modificação dos objetos. O valor é um timestamp UNIX em segundos. Intervalo de valores: [1262275200, 253402271999] |
LastModifyEndTimeStamp | String | Não | 1638347592 | Fim do intervalo de tempo da última modificação dos objetos. O valor é um timestamp UNIX em segundos. Intervalo de valores: [1262275200, 253402271999] |
LowerSizeBound | String | Não | 1024 | 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 | 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 | Classes de armazenamento dos objetos a serem incluídos no inventário. É possível especificar várias classes de armazenamento. Valores válidos:
|
Destination | Container | Sim | N/A | Contêiner com informações sobre o destino onde os relatórios de inventário são armazenados. |
OSSBucketDestination | Container | 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 | Formato do relatório de inventário. O relatório é um arquivo CSV compactado com GZIP. Valor válido: CSV Nó pai: OSSBucketDestination |
AccountId | String | Sim | 100000000000000 | ID da conta Alibaba Cloud proprietária do bucket de destino. Nó pai: OSSBucketDestination |
RoleArn | String | Sim | acs:ram::100000000000000:role/AliyunOSSRole | ARN (Alibaba Cloud Resource Name) da função do RAM com permissões para ler todos os objetos do bucket de origem e gravar objetos no bucket de destino. O formato é Nó pai: OSSBucketDestination |
Bucket | String | Sim | acs:oss:::bucket_0001 | Bucket de destino do relatório de inventário. Nó pai: OSSBucketDestination |
Prefix | String | Não | prefix1/ | Prefixo do caminho onde os arquivos do relatório de inventário são armazenados. Nó pai: OSSBucketDestination |
Encryption | Container | Não | N/A | Contêiner para a configuração de criptografia no lado do servidor do relatório de inventário. Valores válidos:
Nó pai: OSSBucketDestination Para obter mais informações sobre criptografia no lado do servidor, consulte Criptografia no lado do servidor. |
SSE-OSS | Container | Não | N/A | Contêiner para a configuração de criptografia SSE-OSS. Nó pai: Encryption |
SSE-KMS | Container | Não | N/A | Contêiner para a configuração de criptografia SSE-KMS. Nó pai: Encryption |
KeyId | String | Não | keyId | ID da CMK gerenciada pelo KMS. Nó pai: SSE-KMS |
Schedule | Container | Sim | N/A | Contêiner para a programação de geração do relatório de inventário. |
Frequency | String | Sim | Daily | Define a frequência de geração do relatório de inventário. Valores válidos:
Importante A programação Monthly não tem suporte nas seguintes regiões: China (Zhangjiakou), China (Zhongwei), EUA (Virgínia), EUA (Vale do Silício), México, França (Paris), Nó pai: Schedule |
DayOfMonth | Inteiro positivo | Não | 1 | Se Frequency estiver definido como Monthly, especifica o dia do mês para gerar o inventário. O valor deve ser um inteiro positivo de 1 a 31.
Nota Esta data especifica 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 quantidade de objetos, o relatório é entregue após essa data. Nó pai: Schedule |
AutoDelete | Boolean | Não | true | Especifica se a configuração de inventário deve ser excluída após a geração de um inventário único. Este elemento é válido apenas quando Frequency está definido como Once. Valores válidos: true, false Nó pai: Schedule |
IncludedObjectVersions | String | Sim | All | Define se as versões dos objetos devem ser incluídas no inventário. Valores válidos:
|
OptionalFields | Container | Não | N/A | Contêiner para os campos opcionais a serem incluídos no relatório de inventário. |
Field | String | Não | Size | Campos opcionais a serem incluídos no relatório de inventário.
|
IncrementalInventory | Container | Não | N/A | Contêiner para a configuração do inventário incremental. |
IsEnabled | Boolean | Sim | true | Define se o inventário incremental deve ser ativado. Valores válidos:
Se este elemento estiver definido como true, o inventário incremental será ativado e entrará em vigor mesmo que InventoryConfiguration/IsEnabled esteja definido como false. Nó pai: IncrementalInventory |
Schedule | Container | Sim | N/A | Contêiner para a programação de geração do inventário incremental. Nó pai: IncrementalInventory |
Frequency | Inteiro positivo | Sim | 600 | Frequência de geração do inventário incremental, em segundos. O sistema utiliza uma frequência fixa de 600 segundos. Em cada período, um prefixo de diretório é criado automaticamente, juntamente 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 | Container | Não | N/A | Contêiner para as propriedades a serem incluídas no arquivo de inventário incremental. Nó pai: IncrementalInventory |
Field | String | Não | Size | Campos a serem incluídos no inventário incremental. Nó pai: OptionalFields
|
Cabeçalhos de resposta
Esta interface retorna apenas cabeçalhos de resposta comuns, como Content-Length e Date. Para obter detalhes, consulte Cabeçalhos de resposta comuns.
Exemplos
Configuração de inventário
-
Exemplo de solicitaçã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 solicitação a seguir configura um inventário para gerar um relatório no terceiro dia de cada mês.
-
Exemplo de solicitaçã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 solicitaçã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 solicitaçã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 usando os SDKs das seguintes linguagens:
ossutil CLI
O comando 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 | A quantidade de regras de inventário configuradas excede o limite. |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | A regra de inventário já existe. |