對於服務地址作Get請求可以返回要求者擁有的所有Bucket,其中“/”表示根目錄。

請求文法

GET / HTTP/1.1
Host: oss.example.com
Date: GMT Date
Authorization: SignatureValue

請求參數

GetService(ListBucket)時,可以通過prefix,marker和max-keys對list做限定,返回部分結果。

表 1. 請求參數
名稱 類型 是否必需 描述
prefix 字元串 限定返回的bucket name必須以prefix作為首碼,可以不設定,不設定時不過濾首碼資訊

預設值:無

marker 字元串 設定結果從marker之後按字母排序的第一個開始返回,可以不設定,不設定時從頭開始返回數據

預設值:無

max-keys 字元串 限定此次返回bucket的最大數,如果不設定,預設為100,max-keys取值不能大於1000

預設值:100

響應元素(Response Elements)

表 2. 響應元素
名稱 類型 描述
ListAllMyBucketsResult 容器 保存Get Service請求結果的容器。

子節點:Owner, Buckets

父節點:None

Prefix 字元串 本次查詢結果的首碼,當bucket未全部返回時才有此節點。

父節點:ListAllMyBucketsResult

Marker 字元串 標明這次GetService(ListBucket)的起點,當bucket未全部返回時才有此節點。

父節點:ListAllMyBucketsResult

MaxKeys 字元串 響應請求內返回結果的最大數目,當bucket未全部返回時才有此節點。

父節點:ListAllMyBucketsResult

IsTruncated 枚舉字元串 指明是否所有的結果都已經返回:“true”表示本次沒有返回全部結果;“false”表示本次已經返回了全部結果。當bucket未全部返回時才有此節點。

有效值:true、false

父節點:ListAllMyBucketsResult

NextMarker 字元串 表示下一次GetService(ListBucket)可以以此為marker,將未返回的結果返回。當bucket未全部返回時才有此節點。

父節點:ListAllMyBucketsResult

Owner 容器 用於存放Bucket擁有者資訊的容器。

父節點:ListAllMyBucketsResult

ID 字元串 Bucket擁有者的用戶ID。

父節點:ListAllMyBucketsResult.Owner

DisplayName 字元串 Bucket擁有者的名稱 (目前和ID一致)。

父節點:ListAllMyBucketsResult.Owner

Buckets 容器 保存多個Bucket資訊的容器。

子節點:Bucket

父節點:ListAllMyBucketsResult

Bucket 容器 保存bucket資訊的容器。

子節點:Name, CreationDate, Location

父節點:ListAllMyBucketsResult.Buckets

Name 字元串 Bucket名稱。

父節點:ListAllMyBucketsResult.Buckets.Bucket

CreateDate 時間 (格式:yyyy-mm-ddThh:mm:ss.timezone, e.g., 2011-12-01T12:27:13.000Z) Bucket建立時間

父節點:ListAllMyBucketsResult.Buckets.Bucket

Location 字元串 Bucket所在的資料中心。

父節點:ListAllMyBucketsResult.Buckets.Bucket

ExtranetEndpoint 字元串 Bucket訪問的外網網域名稱。

父節點:ListAllMyBucketsResult.Buckets.Bucket

IntranetEndpoint 字元串 同區域ECS訪問Bucket的內網網域名稱。

父節點:ListAllMyBucketsResult.Buckets.Bucket

StorageClass 字元串 Bucket儲存類型,支援“Standard”、“IA”、“Archive”。(目前只有部分區域支援“Archive”類型)

父節點:ListAllMyBucketsResult.Buckets.Bucket

細節分析

  • GetService這個API只對驗證通過的用戶有效。
  • 如果請求中沒有用戶驗證資訊(即匿名訪問),返回403 Forbidden。錯誤碼:AccessDenied。
  • 當所有的bucket都返回時,返回的xml中不包含Prefix、Marker、MaxKeys、IsTruncated、NextMarker節點,如果還有部分結果未返回,則增加上述節點,其中NextMarker用於繼續查詢時給marker賦值。

樣本

請求樣本Ⅰ

GET / HTTP/1.1
Date: Thu, 15 May 2014 11:18:32 GMT
Host: oss-cn-hangzhou.aliyuncs.com
Authorization: OSS nxj7dtl1c24jwhcyl5hpvnhi:COS3OQkfQPnKmYZTEHYv2qUl5jI=

返回樣本Ⅰ

HTTP/1.1 200 OK
Date: Thu, 15 May 2014 11:18:32 GMT
Content-Type: application/xml
Content-Length: 556
Connection: keep-alive
Server: AliyunOSS
x-oss-request-id: 5374A2880232A65C23002D74
<?xml version="1.0" encoding="UTF-8"?>
<ListAllMyBucketsResult>
  <Owner>
    <ID>51264</ID>
    <DisplayName>51264</DisplayName>
  </Owner>
  <Buckets>
    <Bucket>
      <CreationDate>2015-12-17T18:12:43.000Z</CreationDate>
      <ExtranetEndpoint>oss-cn-shanghai.aliyuncs.com</ExtranetEndpoint>
      <IntranetEndpoint>oss-cn-shanghai-internal.aliyuncs.com</IntranetEndpoint>
      <Location>oss-cn-shanghai</Location>
      <Name>app-base-oss</Name>
      <StorageClass>Standard</StorageClass>
    </Bucket>
    <Bucket>
      <CreationDate>2014-12-25T11:21:04.000Z</CreationDate>
      <ExtranetEndpoint>oss-cn-hangzhou.aliyuncs.com</ExtranetEndpoint>
      <IntranetEndpoint>oss-cn-hangzhou-internal.aliyuncs.com</IntranetEndpoint>
      <Location>oss-cn-hangzhou</Location>
      <Name>atestleo23</Name>
      <StorageClass>IA</StorageClass>
    </Bucket>
  </Buckets>
</ListAllMyBucketsResult>

請求樣本Ⅱ

GET /?prefix=xz02tphky6fjfiuc&max-keys=1 HTTP/1.1
Date: Thu, 15 May 2014 11:18:32 GMT
Host: oss-cn-hangzhou.aliyuncs.com
Authorization: OSS nxj7dtl1c24jwhcyl5hpvnhi:COS3OQkfQPnKmYZTEHYv2qUl5jI=

返回樣本Ⅱ

HTTP/1.1 200 OK
Date: Thu, 15 May 2014 11:18:32 GMT
Content-Type: application/xml
Content-Length: 545
Connection: keep-alive
Server: AliyunOSS
x-oss-request-id: 5374A2880232A65C23002D75
<?xml version="1.0" encoding="UTF-8"?>
<ListAllMyBucketsResult>
  <Prefix>xz02tphky6fjfiuc</Prefix>
  <Marker></Marker>
  <MaxKeys>1</MaxKeys>
  <IsTruncated>true</IsTruncated>
  <NextMarker>xz02tphky6fjfiuc0</NextMarker>
  <Owner>
    <ID>ut_test_put_bucket</ID>
    <DisplayName>ut_test_put_bucket</DisplayName>
  </Owner>
  <Buckets>
    <Bucket>
      <CreationDate>2014-05-15T11:18:32.000Z</CreationDate>
      <ExtranetEndpoint>oss-cn-hangzhou.aliyuncs.com</ExtranetEndpoint>
      <IntranetEndpoint>oss-cn-hangzhou-internal.aliyuncs.com</IntranetEndpoint>
      <Location>oss-cn-hangzhou</Location>
      <Name>xz02tphky6fjfiuc0</Name>
      <StorageClass>Standard</StorageClass>
    </Bucket>
  </Buckets>
</ListAllMyBucketsResult>