對於服務地址作Get請求可以返回要求者擁有的所有Bucket,其中“/”表示根目錄。
請求文法
GET / HTTP/1.1
Host: oss.example.com
Date: GMT Date
Authorization: SignatureValue
請求參數
GetService(ListBucket)時,可以通過prefix,marker和max-keys對list做限定,返回部分結果。
名稱 | 類型 | 是否必需 | 描述 |
---|---|---|---|
prefix | 字元串 | 否 | 限定返回的bucket name必須以prefix作為首碼,可以不設定,不設定時不過濾首碼資訊 預設值:無 |
marker | 字元串 | 否 | 設定結果從marker之後按字母排序的第一個開始返回,可以不設定,不設定時從頭開始返回數據 預設值:無 |
max-keys | 字元串 | 否 | 限定此次返回bucket的最大數,如果不設定,預設為100,max-keys取值不能大於1000 預設值:100 |
響應元素(Response Elements)
名稱 | 類型 | 描述 |
---|---|---|
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>