文档首页/ 对象存储服务 OBS/ API参考/ 桶API/ 桶清单/ 获取桶清单-GetBucketInventory
更新时间:2026-06-05 GMT+08:00
分享

获取桶清单-GetBucketInventory

功能介绍

桶清单功能可以定期生成桶内对象的元数据信息,通过查看这些信息,可以帮助您更好地了解桶内对象的状态,可通过本接口获取桶清单。有关更多桶清单的介绍和使用限制,请参见桶清单

授权信息

您必须是桶拥有者或拥有获取桶清单的权限,才能调用本接口,建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见OBS不同权限控制方式的区别

  • 如果使用IAM授权,那么请在“角色与策略授权”、“身份策略授权”两种IAM授权方式中选择一种,并配置相应权限:
    • 如果使用角色与策略授权(旧版IAM,即IAM v3接口),需具备obs:bucket:GetBucketInventoryConfiguration权限,授权操作请参见创建IAM自定义策略
    • 如果使用身份策略授权(新版IAM,即IAM v5接口),如下表所示,需具备obs:bucket:getBucketInventoryConfiguration权限,授权操作请参见创建IAM自定义身份策略

      授权项

      Action

      访问级别

      Access Level

      资源类型(*为必须)

      Resource Type (*: required)

      条件键

      Condition Key

      别名

      Alias

      依赖的授权项

      Dependencies

      obs:bucket:getBucketInventoryConfiguration

      Read

      bucket *

      -

      -

      -

      • obs:EpochTime
      • obs:SourceIp
      • obs:TlsVersion
      • obs:CustomDomain
  • 如果使用桶策略进行授权,需具备obs:bucket:GetBucketInventoryConfiguration权限,具体操作请参见自定义创建桶策略

URI

GET /

调用方法

请参见如何调用API。调用前需要先计算API签名,并将签名添加到请求中。

您还可以使用API Explorer在线调试接口。

请求消息样式

以下为请求消息样例,请将示例中的BucketName修改为您的桶名,RegionID修改为桶所在的区域ID,可参考支持区域获取区域ID。

GET /?inventory&id=configuration-id HTTP/1.1
User-Agent: curl/7.29.0
Host: BucketName.obs.RegionID.myhuaweicloud.com 
Accept: */*
Date: GMT Date
Authorization: SignatureValue

URI参数(URI Parameters)

表1 URI参数

参数

是否必选

参数类型

描述

id

String

参数解释:

需要获取的清单配置的id。

约束限制:

不涉及。

取值范围:

只能由"a-z"、"A-Z"、"0-9"、"-"、"_"和".组成,且长度不超过64字节。

默认取值:

不涉及。

请求头参数(Request headers)

该请求使用公共请求头,具体参见表3

请求体参数(Request body)

该请求消息中不带请求体参数。

响应消息样式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
HTTP/1.1 status_code
Server: OBS
x-obs-request-id: request id
x-obs-id-2: id
Content-Type: application/xml
Date: date
Content-Length: length

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<InventoryConfiguration  xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> 
  <Id>configuration-id</Id>
  <IsEnabled>true</IsEnabled>
  <Destination>
    <Format>CSV</Format>
    <Bucket>destbucket</Bucket>
    <Prefix>prefix</Prefix>
  </Destination>
  <Schedule>
    <Frequency>Daily</Frequency>
  </Schedule>
  <IncludedObjectVersions>Current</IncludedObjectVersions>
  <OptionalFields>
    <Field>Size</Field>
    <Field>LastModifiedDate</Field>
    <Field>ETag</Field>
    <Field>StorageClass</Field>
    <Field>IsMultipartUploaded</Field>
    <Field>ReplicationStatus</Field>
    <Field>EncryptionStatus</Field>
  </OptionalFields>
</InventoryConfiguration>

响应头 (Response Headers)

该请求的响应消息使用公共响应头,具体请参考表1

响应体 (Response Body)

在此请求返回的响应消息体中包含的配置元素如表2

表2 桶清单响应体

名称

参数类型

描述

InventoryConfiguration

Container

参数解释:

清单配置。InventoryConfiguration是Id、IsEnabled、Filter、Destination、Schedule、IncludedObjectVersions以及OptionalFields的父节点。

取值范围:

不涉及。

Id

String

参数解释:

清单配置的id,必须和请求参数中的清单配置id一致。

取值范围:

只能由"a-z"、"A-Z"、"0-9"、"-"、"_"和"."组成,且长度不超过64字节。

IsEnabled

Boolean

参数解释:

规则是否启用,如果设置为true,则生成清单,反之不生成。InventoryConfiguration是IsEnabled的父节点。

取值范围:

  • true:生成桶清单。
  • false:不生成桶清单。

Filter

Container

参数解释:

清单过滤器配置,清单只包含符合过滤器规则的对象(只支持按对象名前缀进行过滤),如果没有配置过滤器,则包含所有对象。InventoryConfiguration是Filter的父节点。Prefix是Filter的子节点。

取值范围:

不涉及。

Prefix

String

参数解释:

前缀过滤条件,清单文件中只生成以此前缀开头的对象列表。Filter是Prefix的父节点。

取值范围:

不超过1024字符。

Schedule

Container

参数解释:

清单文件的生成周期。InventoryConfiguration是Schedule的父节点。Frequency是Schedule的子节点。

取值范围:

不涉及。

Frequency

String

参数解释:

清单文件的生成周期,只支持按天和按周生成清单,第一次配置完桶清单,任务会在一个小时内启动,之后每隔一个周期启动一次。Schedule是Frequency的父节点。

取值范围:

  • Daily:按天生成清单。
  • Weekly:按周生成清单。

Destination

Container

参数解释:

清单的目标配置。InventoryConfiguration是Destination的父节点。

取值范围:

不涉及。

Format

String

参数解释:

生成的清单文件的格式,现只支持CSV格式。Destination是Format的父节点。

取值范围:

CSV:CSV格式。

Bucket

String

参数解释:

存放清单文件的目标桶的桶名。Destination是Bucket的父节点。

取值范围:

不涉及。

Prefix

String

参数解释:

生成的清单文件对象名会以此前缀开头,如果不配置前缀,则生成的清单文件对象名默认以BucketInventory开头。Destination是Prefix的父节点。

取值范围:

不包含\, *, ?, ", <, >, | 字符,且最长254字符。

IncludedObjectVersions

String

参数解释:

清单文件中包含对象的多版本配置。InventoryConfiguration是IncludedObjectVersions的父节点。

取值范围:

  • All:清单会包含对象所有的版本,清单中会增加版本相关的字段:VersionId、IsLatest、和DeleteMarker。
  • Current:清单文件中只会列出当前版本信息,不会出现与多版本相关的VersionId、IsLatest、DeleteMarker字段。

OptionalFields

Container

参数解释:

在此选项中可以添加一些额外的对象元数据字段,生成的清单文件中会包含OptionalFields中配置的字段。InventoryConfiguration是OptionalFields的父节点,Field是OptionalFields的子节点。

取值范围:

不涉及。

Field

String

参数解释:

可选字段类型,OptionalFields可以包含多个Field元素。添加一些额外的对象元数据字段。

取值范围:

  • Size:对象长度
  • LastModifiedDate:对象的创建时间
  • ETag:对象的etag
  • StorageClass:对象的存储类别
  • IsMultipartUploaded:是否多段对象,true或false
  • ReplicationStatus:CRR对象的复制状态
  • EncryptionStatus:服务端加密方式
  • BucketKeyStatus:密钥状态,ENABLED或DISABLED
  • UserMeta:自定义元数据
  • CRC64:数据内容的CRC64
  • ObjectType:对象类型

错误响应消息

除了公共的错误码外,此接口还会返回一些其他的错误码。下表中列出本接口的一些常见错误,以及可能原因。如表3

表3 获取桶清单的错误码列表

错误码

描述

HTTP状态码

NoSuchInventoryConfiguration

没有指定Id对应的清单配置。

404 Not Found

请求示例

GET /?inventory&id=id1 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: Tue, 08 Jan 2019 09:32:24 +0000
Authorization: OBS UDSIAMSTUBTEST000001:ySWncC9M08jNsyXdJLSMJkpi7XM=

响应示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 000001682CB4C2EE6808A0D8DF9F3D00
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSBjn5O7Jv9CqvUMO0BenehRdil1n8rR
Content-Type: application/xml
Date: Tue, 08 Jan 2019 09:04:30 GMT
Content-Length: 626

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<InventoryConfiguration  xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> 
  <Id>id1</Id>
  <IsEnabled>true</IsEnabled>
  <Destination>
    <Format>CSV</Format>
    <Bucket>bucket</Bucket>
    <Prefix>prefix</Prefix>
  </Destination>
  <Schedule>
    <Frequency>Daily</Frequency>
  </Schedule>
  <IncludedObjectVersions>Current</IncludedObjectVersions>
  <OptionalFields>
    <Field>Size</Field>
    <Field>LastModifiedDate</Field>
    <Field>ETag</Field>
    <Field>StorageClass</Field>
    <Field>IsMultipartUploaded</Field>
    <Field>ReplicationStatus</Field>
    <Field>EncryptionStatus</Field>
  </OptionalFields>
</InventoryConfiguration>

使用SDK调用接口

建议您使用OBS SDK调用接口。SDK对API进行了封装以简化您的开发工作,直接调用SDK接口函数即可访问OBS,无需手动计算签名。

Java

Python不支持

C不支持

Go不支持

BrowserJS不支持

.NET不支持

Android不支持

iOS不支持

PHP不支持

Node.js不支持

Harmony不支持

相关文档

  • 了解更多桶清单相关介绍,请参见桶清单
  • API操作涉及的计费项参见计费项

相关文档