Utilisez l'opération PutBucketInventory pour configurer une règle d'inventaire sur un compartiment.
Notes
L'inventaire vous permet d'obtenir des informations sur les objets stockés dans un compartiment, telles que le nombre d'objets, leur taille, leur classe de stockage et leur état de chiffrement. Lors de la configuration des règles d'inventaire, tenez compte des points suivants :
Avant de configurer une règle d'inventaire, vous devez créer un rôle RAM. Ce rôle nécessite des autorisations pour lire tous les objets du compartiment source et écrire des objets dans le compartiment de destination. Nous vous recommandons d'utiliser la console OSS pour configurer votre première règle d'inventaire, car la console vous aide à créer un rôle RAM disposant des autorisations requises. Pour plus d'informations sur les autorisations nécessaires pour le rôle RAM, consultez la rubrique Inventaire de compartiment.
Vous pouvez configurer jusqu'à 1 000 règles d'inventaire par compartiment.
Les compartiments source et de destination pour les fichiers d'inventaire exportés doivent se trouver dans la même région.
Pour activer l'inventaire incrémentiel, contactez le support technique. Cette fonctionnalité est prise en charge uniquement dans la région Mexique.
Autorisations
Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations. Les utilisateurs RAM ou les rôles RAM associés à un compte Alibaba Cloud ne disposent d'aucune autorisation par défaut. Le compte Alibaba Cloud ou l'administrateur du compte doit accorder les autorisations d'opération via des politiques RAM ou une stratégie de compartiment.
|
API |
Action |
Description |
|
PutBucketInventory |
oss:PutBucketInventory |
Configure des inventaires pour un compartiment. |
Syntaxe de la requête
Le paramètre de chaîne de requête 'inventoryId' est obligatoire. Sa valeur doit correspondre à celle de l'élément 'Id' dans le corps de la requête.
Vous pouvez utiliser les options LastModifyBeginTimeStamp, LastModifyEndTimeStamp, LowerSizeBound, UpperSizeBound et StorageClass uniquement dans les régions Chine (Qingdao), Chine (Hohhot) et Allemagne (Francfort).
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>
Éléments de la requête
Paramètre | Type | Obligatoire | Exemple | Description |
Id | String | Oui | report1 | Nom personnalisé de l'inventaire. Le nom doit respecter les exigences suivantes :
|
IsEnabled | Boolean | Oui | true | Indique si l'inventaire est activé. Valeurs valides :
|
Filter | Container | Non | N/A | Conteneur pour le filtre, qui spécifie les critères des objets à inclure dans l'inventaire. |
Prefix | String | Non | Pics/ | Préfixe utilisé pour filtrer les objets. Nœud parent : Filter |
LastModifyBeginTimeStamp | String | Non | 1637883649 | Début de la plage de temps de dernière modification des objets. La valeur est un horodatage UNIX en secondes. Plage de valeurs : [1262275200, 253402271999] |
LastModifyEndTimeStamp | String | Non | 1638347592 | Fin de la plage de temps de dernière modification des objets. La valeur est un horodatage UNIX en secondes. Plage de valeurs : [1262275200, 253402271999] |
LowerSizeBound | String | Non | 1024 | Taille minimale (en octets) des objets à inclure dans l'inventaire. La valeur doit être supérieure ou égale à 0 o et inférieure ou égale à 48,8 To. |
UpperSizeBound | String | Non | 1048576 | Taille maximale (en octets) des objets à inclure dans l'inventaire. La valeur doit être supérieure à 0 o et inférieure ou égale à 48,8 To. |
StorageClass | String | Non | Standard,IA | Classes de stockage des objets à inclure dans l'inventaire. Vous pouvez spécifier plusieurs classes de stockage. Valeurs valides :
|
Destination | Container | Oui | N/A | Conteneur contenant les informations sur la destination où les rapports d'inventaire sont stockés. |
OSSBucketDestination | Container | Oui | N/A | Conteneur contenant les informations sur le compartiment où les rapports d'inventaire sont stockés. Nœud parent : Destination |
Format | String | Oui | CSV | Format du rapport d'inventaire. Le rapport est un fichier CSV compressé au format GZIP. Valeur valide : CSV Nœud parent : OSSBucketDestination |
AccountId | String | Oui | 100000000000000 | ID du compte Alibaba Cloud propriétaire du compartiment de destination. Nœud parent : OSSBucketDestination |
RoleArn | String | Oui | acs:ram::100000000000000:role/AliyunOSSRole | Nom de ressource Alibaba Cloud (ARN) du rôle RAM disposant des autorisations pour lire tous les objets du compartiment source et écrire des objets dans le compartiment de destination. Le format est Nœud parent : OSSBucketDestination |
Bucket | String | Oui | acs:oss:::bucket_0001 | Compartiment de destination pour le rapport d'inventaire. Nœud parent : OSSBucketDestination |
Prefix | String | Non | prefix1/ | Préfixe du chemin d'accès où les fichiers de rapport d'inventaire sont stockés. Nœud parent : OSSBucketDestination |
Encryption | Container | Non | N/A | Conteneur pour la configuration du chiffrement côté serveur du rapport d'inventaire. Valeurs valides :
Nœud parent : OSSBucketDestination Pour plus d'informations sur le chiffrement côté serveur, consultez la rubrique Chiffrement côté serveur. |
SSE-OSS | Container | Non | N/A | Conteneur pour la configuration du chiffrement SSE-OSS. Nœud parent : Encryption |
SSE-KMS | Container | Non | N/A | Conteneur pour la configuration du chiffrement SSE-KMS. Nœud parent : Encryption |
KeyId | String | Non | keyId | ID de la CMK gérée par KMS. Nœud parent : SSE-KMS |
Schedule | Container | Oui | N/A | Conteneur pour la planification de la génération du rapport d'inventaire. |
Frequency | String | Oui | Daily | Spécifie la fréquence de génération du rapport d'inventaire. Valeurs valides :
Important La planification Monthly n'est pas prise en charge dans les régions suivantes : Chine (Zhangjiakou), Chine (Zhongwei), États-Unis (Virginie), États-Unis (Silicon Valley), Mexique, France (Paris), Nœud parent : Schedule |
DayOfMonth | Entier positif | Non | 1 | Si Frequency est défini sur Monthly, spécifie le jour du mois auquel l'inventaire est généré. La valeur doit être un entier positif compris entre 1 et 31.
Remarque Cette date indique le début de la tâche d'inventaire, et non la livraison du rapport. Étant donné que la génération de l'inventaire est une tâche asynchrone dont la durée dépend du nombre d'objets, le rapport est livré après cette date. Nœud parent : Schedule |
AutoDelete | Boolean | Non | true | Spécifie s'il faut supprimer la configuration d'inventaire après la génération d'un inventaire unique. Cet élément est valide uniquement lorsque Frequency est défini sur Once. Valeurs valides : true, false Nœud parent : Schedule |
IncludedObjectVersions | String | Oui | All | Spécifie s'il faut inclure les versions d'objet dans l'inventaire. Valeurs valides :
|
OptionalFields | Container | Non | N/A | Conteneur pour les champs facultatifs à inclure dans le rapport d'inventaire. |
Field | String | Non | Size | Champs facultatifs à inclure dans le rapport d'inventaire.
|
IncrementalInventory | Container | Non | N/A | Conteneur pour la configuration de l'inventaire incrémentiel. |
IsEnabled | Boolean | Oui | true | Indique s'il faut activer l'inventaire incrémentiel. Valeurs valides :
Si cet élément est défini sur true, l'inventaire incrémentiel est activé et prend effet, même si InventoryConfiguration/IsEnabled est défini sur false. Nœud parent : IncrementalInventory |
Schedule | Container | Oui | N/A | Conteneur pour la planification de la génération de l'inventaire incrémentiel. Nœud parent : IncrementalInventory |
Frequency | Entier positif | Oui | 600 | Fréquence de génération de l'inventaire incrémentiel, en secondes. Le système utilise une fréquence fixe de 600 secondes. À chaque période, un préfixe de répertoire est automatiquement créé, ainsi qu'un fichier manifeste correspondant et plusieurs fichiers CSV générés durant cette période. Les fréquences personnalisées ne sont pas prises en charge. Nœud parent : Schedule |
OptionalFields | Container | Non | N/A | Conteneur pour les propriétés à inclure dans le fichier d'inventaire incrémentiel. Nœud parent : IncrementalInventory |
Field | String | Non | Size | Champs à inclure dans l'inventaire incrémentiel. Nœud parent : OptionalFields
|
En-têtes de réponse
Cette interface renvoie uniquement des en-têtes de réponse courants, tels que Content-Length et Date. Pour plus d'informations, consultez la rubrique En-têtes de réponse courants.
Exemples
Configuration d'inventaire
-
Exemple de requête
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> -
Exemple de réponse
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Configuration d'inventaire mensuel
La requête suivante configure un inventaire pour générer un rapport le 3e jour de chaque mois.
-
Exemple de requête
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> -
Exemple de réponse
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Configuration d'inventaire unique
-
Exemple de requête
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> -
Exemple de réponse
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Configuration d'inventaire incrémentiel
-
Exemple de requête
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> -
Exemple de réponse
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
Vous pouvez appeler cette opération à l'aide des SDK pour les langages suivants :
CLI ossutil
La commande ossutil pour l'opération PutBucketInventory est put-bucket-inventory.
Codes d'erreur
Code d'erreur | Code d'état HTTP | Description |
InvalidArgument | 400 | Un ou plusieurs paramètres spécifiés ne sont pas valides. |
InventoryExceedLimit | 400 | Le nombre de règles d'inventaire configurées dépasse la limite. |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | La règle d'inventaire existe déjà. |