对象存储OBS列举桶内对象响应结果

请求参数
在对象存储服务(Object Storage Service, OBS)中,当您需要获取桶内所有对象的列表时,通常需要向OBS发送一个列举桶内对象的请求,该请求包含一些关键参数,
bucket
: 指定要列举对象的存储桶名称。
prefix
: 可选参数,用于过滤具有特定前缀的对象。
delimiter
: 可选参数,用于将结果组织成目录结构。
maxkeys
: 可选参数,设置一次请求返回的最大对象数量。
marker
: 可选参数,表示从哪个对象开始列举。
响应格式

当OBS收到列举桶内对象的请求后,它会返回一个响应,其中包含了桶内对象的信息,响应的常见格式如下:
{ "IsTruncated": true|false, "Contents": [ { "Key": "objectkey", "LastModified": "date", "ETag": "objectetag", "Size": "sizeinbytes" }, ... ], "CommonPrefixes": [ { "Prefix": "commonprefix" }, ... ], "NextMarker": "nextobjectkey" }
响应字段解释
IsTruncated
: 布尔值,如果为true,表明返回的对象列表被截断,即还有更多的对象未列出。
Contents
: 对象数组,每个对象包括键(Key)、最后修改时间(LastModified)、ETag和大小(Size)。
CommonPrefixes
: 公共前缀数组,仅在使用了delimiter参数时出现,代表虚拟的“目录”结构。
NextMarker
: 字符串,如果IsTruncated为true,则此标记指示下一个对象列表的起始点。
相关问题与解答
Q1: 如果响应中的IsTruncated是true,我该如何继续获取剩余的对象?

A1: 为了获取剩余的对象,你需要再次发送列举桶内对象的请求,并在请求中添加marker
参数,其值设置为上一次响应中的NextMarker
,这样,你将获得下一批对象列表,直到响应中的IsTruncated变为false。
Q2: 如果我只需要获取某个特定前缀下的对象列表,应该如何操作?
A2: 在发送列举桶内对象的请求时,你可以设置prefix
参数为你感兴趣的前缀,这样,OBS只会返回该前缀下的对象列表,如果你还想按目录结构来组织这些对象,可以同时使用delimiter
参数。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复