CDN加速

GetBucket

更新时间:2021-06-25 16:35:48

GetBucket

列举指定空间的对象列表。需要IAM wos:GetBucket权限

请求语法

GET /?prefix=Prefix&marker=Marker&max-keys=Max-Keys&delimiter=Delimiter&start-time=Start-Time&end-time=End-Time
Host: BucketName.Endpoint
Date: Date
Authorization: <Authorization>

请求参数

参数名称

是否必填

描述

prefix

列举以指定的字符串prefix开头的对象。可以指定前缀将空间对象分组,就像文件系统中使用文件夹一样。

类型:字符串。

marker

列举空间内对象列表时,指定一个标识符,返回的对象列表将是按照字典顺序排序后这个标识符以后的所有对象。

类型:字符串。

max-keys

指定返回的最大对象数,返回的对象列表将是按照字典顺序的最多前max-keys个对象,范围是[1,1000],超出最大范围时,按照默认的1000进行处理。

类型:整型。

delimiter

用来指定将对象名按照特定字符分割的分割符。如果指定了prefix参数,按delimiter对所有对象命名进行分割,多个对象分割后prefix到第一个delimiter间都相同的对象会形成一条CommonPrefixes;如果没有携带prefix参数,按delimiter对所有对象命名进行分割,多个对象分割后从对象名开始到第一个delimiter之间相同的部分形成一条CommonPrefixes。

类型:字符串。

注:参数名大小写敏感。例如:设置PREFIX=abc,该参数虽然参与鉴权,但实际作用不生效。

请求头部

使用公共请求头部

请求主体

无请求主体。

响应语法

HTTP/1.1 StatusCode 
x-wos-request-id: RequestId 
Date: Date
Content-Type: type
Content-Length: length
Server: WS-web-server

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="https://www.wangsu.com/document">
<ListBucketResult>
  <IsTruncated>boolean</IsTruncated>
  <Marker>string</Marker>
  <NextMarker>string</NextMarker>
  <Contents>
    <ETag>string</ETag>
    <Key>string</Key>
    <LastModified>timestamp</LastModified>
    <ExpirationDate>timestamp</ExpirationDate>
    <Owner>
      <DisplayName>string</DisplayName>
      <ID>string</ID>
    </Owner>
    <Size>integer</Size>
    <StorageClass>string</StorageClass>
  </Contents>
  ...
  <Name>string</Name>
  <Prefix>string</Prefix>
  <Delimiter>string</Delimiter>
  <MaxKeys>integer</MaxKeys>
  <CommonPrefixes>
  <Prefix>string</Prefix>
  </CommonPrefixes>
  ...
  <EncodingType>string</EncodingType>
</ListBucketResult>
``

## 响应头部
使用[公共响应头部](https://www.wangsu.com/document/cate/644/18847)。

## 响应主体
该请求的响应消息中,会以XML形式将用户拥有的空间列出来,元素的具体含义如下表所示。
<table class="wrapped confluenceTable"><colgroup><col /><col /></colgroup><tbody><tr><th class="confluenceTh">元素名称</th><th class="confluenceTh">描述</th></tr><tr><td class="confluenceTd" colspan="1"><p><span>ListBucketResult</span></p></td><td class="confluenceTd" colspan="1"><p><span>空间内对象列表。</span></p><p><span>类型:<span>XML</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>Contents</span></p></td><td class="confluenceTd"><p><span>对象的元数据信息。</span></p><p><span>类型:</span> <span>XML</span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>CommonPrefixes</span></p></td><td class="confluenceTd"><p><span>如果请求中带<span>delimiter</span>参数时,则返回消息带<span>CommonPrefixes</span>分组信息。<span>CommonPrefixes</span>表明以<span>delimiter</span>结尾,拥有共同<span>Prefix</span>的对象的分组。 </span></p><p><span>类型:<span>XML</span></span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>Delimiter</span></p></td><td class="confluenceTd"><p><span>请求中携带的<span>delimiter</span>参数。</span></p><p><span>类型:字符串</span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>ETag</span></p></td><td class="confluenceTd"><p><span>对象的<span>base64</span>编码的<span>128</span>位<span>MD5</span>摘要。<span>ETag</span>是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时<span>ETag</span>为<span>A</span>,下载对象时<span>ETag</span>为<span>B</span>,则说明对象内容发生了变化。</span></p><p><span>实际的<span>ETag</span>是对象的哈希值,<span>ETag</span>只反映变化的内容,而不是其元数据。上传的对象或拷贝操作创建的对象,通过<span>MD5</span>加密后都有唯一的<span>ETag</span>。</span></p><p><span>类型:字符串</span></p><p><span>父节点:<span>ListBucketResult.Contents</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>ID</span></p></td><td class="confluenceTd"><p><span>对象拥有者的用户<span>ID</span>。</span></p><p><span>类型:字符串</span></p><p><span>父节点:<span>ListBucketResult.Contents.Owner</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>DisplayName</span></p></td><td class="confluenceTd"><p><span>对象拥有者的用户名。</span></p></td></tr><tr><td class="confluenceTd"><p><span>IsTruncated</span></p></td><td class="confluenceTd"><p><span>表明是否本次返回的<span>ListBucketResult</span>结果列表被截断。<span>&ldquo;true&rdquo;</span>表示本次没有返回全部结果;<span>&ldquo;false&rdquo;</span>表示本次已经返回了全部结果。</span></p><p><span>类型:<span>Boolean</span></span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>Key</span></p></td><td class="confluenceTd"><p><span>对象名。</span></p><p><span>类型:字符串</span></p><p><span>父节点:<span>ListBucketResult.Contents</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>LastModified</span></p></td><td class="confluenceTd"><p><span>对象最近一次被修改的时间。</span></p><p><span>类型:<span>Date</span></span></p><p><span>父节点:<span>ListBucketResult.Contents</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>Marker</span></p></td><td class="confluenceTd"><p><span>列举对象时的起始位置。</span></p><p><span>类型:字符串</span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>NextMarker</span></p></td><td class="confluenceTd"><p><span>如果本次没有返回全部结果,响应请求中将包含此字段,用于标明本次请求列举到的最后一个对象。后续请求可以指定<span>Marker</span>等于该值来列举剩余的对象。 </span></p><p><span>类型:字符串 </span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>MaxKeys</span></p></td><td class="confluenceTd"><p><span>列举时最多返回的对象个数。 </span></p><p><span>类型:字符串 </span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>Name</span></p></td><td class="confluenceTd"><p><span>本次请求的空间名。</span></p><p><span>类型:字符串</span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>Owner</span></p></td><td class="confluenceTd"><p><span>用户信息,包含用户<span>ID</span>和用户名。 </span></p><p><span>类型:<span>XML </span></span></p><p><span>父节点:<span>ListBucketResult.Contents</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>Prefix</span></p></td><td class="confluenceTd"><p><span>对象名的前缀,表示本次请求只列举对象名能匹配该前缀的所有对象。</span></p><p><span>类型:字符串</span></p><p><span>父节点:<span>ListBucketResult</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>Size</span></p></td><td class="confluenceTd"><p><span>对象大小。</span></p><p><span>类型:字符串</span></p><p><span>父节点:<span>ListBucketResult.Contents</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>StorageClass</span></p></td><td class="confluenceTd"><p><span>对象的存储类型。</span></p><p><span>类型:枚举值 </span></p><p><span>有效值:<span>STANDARD </span></span></p><p><span>父节点:<span>ListBucketResult.Contents</span></span></p></td></tr><tr><td class="confluenceTd"><p><span>ExpirationDate</span></p></td><td class="confluenceTd"><p><span>文件过期时间。 </span></p><p><span>类型:<span>Date </span></span></p><p><span>父节点:<span>ListBucketResult.Contents</span></span></p></td></tr></tbody></table>

# 异常场景
<table class="wrapped confluenceTable"><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th class="confluenceTh"><span><strong>Situation</strong></span></th><th class="confluenceTh">Http Status</th><th class="confluenceTh"><span><strong>Error Code</strong></span></th><th class="confluenceTh"><span><strong>Message</strong></span></th></tr><tr><td class="confluenceTd"><p><span>max-keys</span><span>为负数</span></p></td><td class="confluenceTd"><p>400 Bad Request</p></td><td class="confluenceTd"><p>InvalidArgument</p></td><td class="confluenceTd"><p>max-keys cannot be negative</p></td></tr><tr><td class="confluenceTd"><p><span>max-keys</span><span>为小数或者超过最大整型上限</span></p></td><td class="confluenceTd"><p>400 Bad Request</p></td><td class="confluenceTd"><p>InvalidArgument</p></td><td class="confluenceTd"><p>Provided max-keys not an integer or within integer range</p></td></tr></tbody></table>