ListObjectsV2(GetBucketV2)介面用於列舉儲存空間(Bucket)中的對象檔案(Object)的資訊。
請求文法
GET /?list-type=2 HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue使用說明
執行ListObjectsV2(GetBucketV2)請求時不會返回Object中自訂的中繼資料。單次請求返回的檔案清單預設最大100條,如需擷取全量檔案清單,需要藉助NextContinuationToken、continuationToken等參數實現分段擷取。
請求參數
名稱 | 類型 | 是否必選 | 樣本值 | 描述 |
list-type | 數字 | 是 | 2 | 取值固定為2。 |
delimiter | 字串 | 否 | / | 對Object名字進行分組的字元。所有Object名字包含指定首碼且第一次出現delimiter字元之間的Object作為一組元素(即CommonPrefixes)。 預設值:無 |
start-after | 字串 | 否 | b | 指定從start-after之後按字母排序開始返回Object,用於實現分頁顯示效果。參數長度必須小於1024位元組。 執行條件查詢時,即使start-after在列表中不存在,也會從符合start-after字母排序的下一個Object開始返回結果。 預設值:無 |
continuation-token | 字串 | 否 | test1.txt | 指定List操作需要從此token開始繼續列舉。此token可從上一次ListObjectsV2(GetBucketV2)結果中的NextContinuationToken擷取。 |
max-keys | 數字 | 否 | 100 | 指定返回Object的最大數量。 取值:大於0小於等於1000 預設值:100
|
prefix | 字串 | 否 | a | 限定返迴文件的Key必須以prefix作為首碼,將prefix設為某個檔案夾名時,可列舉該檔案夾下遞迴的所有檔案和子檔案夾。 配合delimiter參數使用時,prefix設定檔案夾路徑,delimiter設定為正斜線(/),可實現只列舉該檔案夾下的直接檔案,子檔案夾名返回在CommonPrefixes中,不展開子檔案夾內容。 例如,一個Bucket包含三個Object:fun/test.jpg、fun/movie/001.avi和fun/movie/007.avi。設定prefix為fun/時,返回全部三個Object;在prefix設為fun/基礎上將delimiter設為正斜線(/)時,返回fun/test.jpg檔案和fun/movie/檔案夾。
預設值:無 |
encoding-type | 字串 | 否 | url | 對返回的內容進行編碼並指定編碼類別型。 預設值:無 可選值:url 當delimiter、start-after、prefix、NextContinuationToken以及Key中包含XML 1.0標準不支援的控制字元時,通過指定encoding-type參數可對返回結果中的這些欄位進行URL編碼。 delimiter、start-after、prefix、NextContinuationToken以及Key使用UTF-8字元編碼。 |
fetch-owner | 布爾值 | 否 | false | 指定是否在返回結果中包含owner資訊。 可選值:true、false
預設值:false |
響應參數
名稱 | 類型 | 樣本值 | 描述 |
Contents | 容器 | 不涉及 | 儲存每個返回Object中繼資料的容器。 父節點:ListBucketResult |
CommonPrefixes | 容器 | 不涉及 | 當請求中指定了Delimiter參數時,返迴響應中包含CommonPrefixes元素。該元素表示以Delimiter結尾且具有共同首碼的Object名稱集合。 父節點:ListBucketResult 子節點:Prefix |
Delimiter | 字串 | / | 對Object名字進行分組的字元。所有名字包含指定首碼且第一次出現Delimiter字元之間的Object作為一組元素CommonPrefixes。 父節點:ListBucketResult |
EncodingType | 字串 | 不涉及 | 指明返回結果中編碼使用的類型。當請求參數中指定了Encoding-type時,會對返回結果中的Delimiter、StartAfter、Prefix、NextContinuationToken和Key這些元素進行編碼。 父節點:ListBucketResult |
DisplayName | 字串 | user_example | Object擁有者的顯示名稱。 父節點:ListBucketResult.Contents.Owner |
ETag | 字串 | 5B3C1A2E053D763E1B002CC607C5A0FE1**** | ETag在每個Object產生時建立,用於標識Object內容的唯一性。 父節點:ListBucketResult.Contents
|
ID | 字串 | 0022012**** | Bucket擁有者的使用者ID。 父節點:ListBucketResult.Contents.Owner |
IsTruncated | 枚舉字串 | false | 請求中返回的結果是否被截斷。 傳回值:true、false
父節點:ListBucketResult |
Key | 字串 | fun/test.jpg | Object的Key名稱。 父節點:ListBucketResult.Contents |
LastModified | 時間 | 2012-02-24T08:42:32.000Z | Object最後被修改的時間。 父節點:ListBucketResult.Contents |
ListBucketResult | 容器 | 不涉及 | 儲存GetBucket請求結果的容器。 子節點:Name、Prefix、StartAfter、MaxKeys、 Delimiter、IsTruncated、NextContinuationToken、Contents 父節點:None |
StartAfter | 字串 | test1.txt | 當請求中指定了StartAfter參數時,返回的響應中包含StartAfter元素。 |
MaxKeys | 數字 | 100 | 響應請求內返回結果的最大數目。 父節點:ListBucketResult |
Name | 字串 | examplebucket | Bucket名稱。 父節點:ListBucketResult |
Owner | 容器 | 不涉及 | 儲存Bucket擁有者資訊的容器。 子節點:DisplayName、ID 父節點:ListBucketResult.Contents |
Prefix | 字串 | fun/ | 本次查詢結果的首碼。 父節點:ListBucketResult |
Type | 字串 | Normal | 檔案類型。 取值:Normal,Multipart,Appendable,Symlink。 父節點:ListBucketResult.Contents |
Size | 數字 | 344606 | 返回Object大小,單位為位元組。 父節點:ListBucketResult.Contents |
StorageClass | 字串 | Standard | Object的儲存類型。 父節點:ListBucketResult.Contents |
SealedTime | 時間 | 2020-05-21T12:07:15.000Z | 檔案執行Seal操作的時間。當訪問處於Sealed狀態的可追加寫檔案(Appendable Object)時,返回該欄位。 父節點:ListBucketResult.Contents |
ContinuationToken | 字串 | test1.txt | 當請求中指定了ContinuationToken參數時,返回的響應中包含ContinuationToken元素。 父節點:ListBucketResult |
KeyCount | 數字 | 6 | 此次請求返回的Key個數。當指定了Delimiter參數時,KeyCount為Key和CommonPrefixes的元素總數。 父節點:ListBucketResult |
NextContinuationToken | 字串 | CgJiYw-- | 表明此次ListObjectsV2(GetBucketV2)請求包含後續結果,需要將NextContinuationToken作為下次請求的ContinuationToken參數值來繼續擷取剩餘結果。 父節點:ListBucketResult |
RestoreInfo | 字串 | ongoing-request="true" | Object的解凍狀態。
父節點:ListBucketResult.Contents |
使用樣本
簡單請求
請求樣本
GET /?list-type=2 HTTP/1.1 Host: examplebucket.oss-cn-hangzhou.aliyuncs.com Date: Thu, 17 Apr 2025 08:43:27 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e返回樣本
HTTP/1.1 200 OK x-oss-request-id: 534B371674E88A4D8906**** Date: Thu, 17 Apr 2025 08:43:27 GMT Content-Type: application/xml Content-Length: 1866 Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Name>examplebucket</Name> <Prefix></Prefix> <MaxKeys>100</MaxKeys> <EncodingType>url</EncodingType> <IsTruncated>false</IsTruncated> <Contents> <Key>a</Key> <LastModified>2020-05-18T05:45:43.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>a/b</Key> <LastModified>2020-05-18T05:45:47.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>b</Key> <LastModified>2020-05-18T05:45:50.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>b/c</Key> <LastModified>2020-05-18T05:45:54.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>bc</Key> <LastModified>2020-05-18T05:45:59.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>c</Key> <LastModified>2020-05-18T05:45:57.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <KeyCount>6</KeyCount> </ListBucketResult>
帶prefix參數的請求
請求樣本
GET /?list-type=2&prefix=a HTTP/1.1 Host: examplebucket.oss-cn-hangzhou.aliyuncs.com Date: Thu, 17 Apr 2025 08:43:27 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e返回樣本
HTTP/1.1 200 OK x-oss-request-id: 534B371674E88A4D8906**** Date: Thu, 17 Apr 2025 08:43:27 GMT Content-Type: application/xml Content-Length: 1464 Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Name>examplebucket</Name> <Prefix>a</Prefix> <MaxKeys>100</MaxKeys> <EncodingType>url</EncodingType> <IsTruncated>false</IsTruncated> <Contents> <Key>a</Key> <LastModified>2020-05-18T05:45:43.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>a/b</Key> <LastModified>2020-05-18T05:45:47.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <KeyCount>2</KeyCount> </ListBucketResult>
帶prefix和delimiter參數的請求
請求樣本
GET /?list-type=2&prefix=a/&delimiter=/ HTTP/1.1 Host: examplebucket.oss-cn-hangzhou.aliyuncs.com Date: Thu, 17 Apr 2025 08:43:27 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e返回樣本
HTTP/1.1 200 OK x-oss-request-id: 534B371674E88A4D8906**** Date: Thu, 17 Apr 2025 08:43:27 GMT Content-Type: application/xml Content-Length: 712 Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Name>examplebucket</Name> <Prefix>a/</Prefix> <MaxKeys>100</MaxKeys> <Delimiter>/</Delimiter> <EncodingType>url</EncodingType> <IsTruncated>false</IsTruncated> <Contents> <Key>a/b</Key> <LastModified>2020-05-18T05:45:47.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> </Contents> <CommonPrefixes> <Prefix>a/b/</Prefix> </CommonPrefixes> <KeyCount>2</KeyCount> </ListBucketResult>
帶start-after、max-keys和fetch-owner參數的請求
請求樣本
GET /?list-type=2&start-after=b&max-keys=3&fetch-owner=true HTTP/1.1 Host: examplebucket.oss-cn-hangzhou.aliyuncs.com Date: Thu, 17 Apr 2025 08:43:27 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e返回樣本
HTTP/1.1 200 OK x-oss-request-id: 534B371674E88A4D8906**** Date: Thu, 17 Apr 2025 08:43:27 GMT Content-Type: application/xml Content-Length: 712 Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Name>examplebucket</Name> <Prefix></Prefix> <StartAfter>b</StartAfter> <MaxKeys>3</MaxKeys> <EncodingType>url</EncodingType> <IsTruncated>true</IsTruncated> <NextContinuationToken>CgJiYw--</NextContinuationToken> <Contents> <Key>b/c</Key> <LastModified>2020-05-18T05:45:54.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>1686240967192623</ID> <DisplayName>1686240967192623</DisplayName> </Owner> </Contents> <Contents> <Key>ba</Key> <LastModified>2020-05-18T11:17:58.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>1686240967192623</ID> <DisplayName>1686240967192623</DisplayName> </Owner> </Contents> <Contents> <Key>bc</Key> <LastModified>2020-05-18T05:45:59.000Z</LastModified> <ETag>"35A27C2B9EAEEB6F48FD7FB5861D****"</ETag> <Size>25</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>1686240967192623</ID> <DisplayName>1686240967192623</DisplayName> </Owner> </Contents> <KeyCount>3</KeyCount> </ListBucketResult>
請求的Bucket包含歸檔或冷歸檔類型檔案
請求樣本
GET /?list-type=2 HTTP/1.1 Host: examplebucket.oss-cn-hangzhou.aliyuncs.com Date: Thu, 17 Apr 2025 08:43:27 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e返回樣本
HTTP/1.1 200 OK x-oss-request-id: 534B371674E88A4D8906**** Date: Thu, 17 Apr 2025 08:43:27 GMT Content-Type: application/xml Content-Length: 1866 Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Name>examplebucket</Name> <Prefix></Prefix> <MaxKeys>100</MaxKeys> <EncodingType>url</EncodingType> <IsTruncated>false</IsTruncated> <Contents> <Key>exampleobject1.txt</Key> <LastModified>2020-06-22T11:42:32.000Z</LastModified> <ETag>"5B3C1A2E053D763E1B002CC607C5A0FE1****"</ETag> <Type>Normal</Type> <Size>344606</Size> <StorageClass>ColdArchive</StorageClass> <Owner> <ID>0022012****</ID> <DisplayName>user-example</DisplayName> </Owner> </Contents> <Contents> <Key>exampleobject2.txt</Key> <LastModified>2020-06-22T11:42:32.000Z</LastModified> <ETag>"5B3C1A2E053D763E1B002CC607C5A0FE1****"</ETag> <Type>Normal</Type> <Size>344606</Size> <StorageClass>Standard</StorageClass> <RestoreInfo>ongoing-request="true"</RestoreInfo> <Owner> <ID>0022012****</ID> <DisplayName>user-example</DisplayName> </Owner> </Contents> <Contents> <Key>exampleobject3.txt</Key> <LastModified>2020-06-22T11:42:32.000Z</LastModified> <ETag>"5B3C1A2E053D763E1B002CC607C5A0FE1****"</ETag> <Type>Normal</Type> <Size>344606</Size> <StorageClass>Standard</StorageClass> <RestoreInfo>ongoing-request="false", expiry-date="Thu, 24 Sep 2020 12:40:33 GMT"</RestoreInfo> <Owner> <ID>0022012****</ID> <DisplayName>user-example</DisplayName> </Owner> </Contents> </ListBucketResult>檔案所處的狀態說明如下:
exampleobject1.txt未提交RestoreObject請求或者RestoreObject請求已到期。
exampleobject2.txt已提交RestoreObject請求,但解凍操作未完成。
exampleobject3.txt已提交RestoreObject請求,且解凍操作已完成。
錯誤碼
錯誤碼 | HTTP狀態代碼 | 描述 |
NoSuchBucket | 404 | 請求的目標Bucket不存在。請檢查請求的Bucket名稱是否符合命名規範。 |
AccessDenied | 403 | 沒有訪問該Bucket的許可權。只有Bucket擁有者以及被授予 |
InvalidArgument | 400 |
|