371
阿裏雲
查看對象列表__管理文件_開發人員指南_對象存儲 OSS-阿裏雲
查看對象列表即列出您在Bucket中上傳的文件(Object),您可以通過OSS的接口調用一次性得到某一Bucket下最多1000個的Object列表。通過下麵的四個參數,您可以完成多種拓展功能:
名稱 | 作用 |
---|---|
Delimiter | 用於對Object名字進行分組的字符。所有名字包含指定的前綴且第一次出現Delimiter字符之間的Object作為一組元素: CommonPrefixes。 |
Marker | 設定結果從Marker之後按字母排序的第一個開始返回。 |
MaxKeys | 限定此次返回Object的最大數,如果不設定,默認為100,MaxKeys取值不能大於1000。 |
Prefix | 限定返回的Object key必須以Prefix作為前綴。注意使用prefix查詢時,返回的key中仍會包含Prefix。 |
文件夾模擬功能
OSS服務是沒有文件夾這個概念的,所有元素都是以Object來存儲。創建模擬文件夾本質上來說是創建了一個size為0的Object。對於這個Object照樣可以上傳下載,隻是控製台會對以“/”結尾的Object以文件夾的方式展示。所以您可以使用上述方式來實現創建模擬文件夾。
您可以通過 Delimiter 和 Prefix 參數的配合模擬出文件夾功能。Delimiter 和 Prefix 的組合效果是這樣的:
- 如果把 Prefix 設為某個文件夾名,就可以羅列以此 Prefix 開頭的文件,即該文件夾下遞歸的所有的文件和子文件夾(目錄)。文件名在Contents中顯示。
- 如果再把 Delimiter 設置為 “/” 時,返回值就隻羅列該文件夾下的文件和子文件夾(目錄),該文件夾下的子文件名(目錄)返回在 CommonPrefixes 部分,子文件夾下遞歸的文件和文件夾不被顯示。
舉個例子:
假如在OSS的Bucket:oss-sample下有如下Object:
文件D
目錄A/文件C
目錄A/文件D
目錄A/目錄B/文件B
目錄A/目錄B/目錄C/文件A
目錄A/目錄C/文件A
目錄A/目錄D/文件B
目錄B/文件A
1. 列出第一層目錄和文件
根據API中請求約定,需要設置Prefix為“”,Delimiter為"/":
返回結果如下:
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult>
<Name>oss-sample</Name>
<Prefix></Prefix>
<Marker></Marker>
<MaxKeys>1000</MaxKeys>
<Delimiter>/</Delimiter>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>文件D</Key>
<LastModified>2015-11-06T10:07:11.000Z</LastModified>
<ETag>"8110930DA5E04B1ED5D84D6CC4DC9080"</ETag>
<Type>Normal</Type>
<Size>3340</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>oss</ID>
<DisplayName>oss</DisplayName>
</Owner>
</Contents>
<CommonPrefixes>
<Prefix>目錄A/</Prefix>
</CommonPrefixes>
<CommonPrefixes>
<Prefix>目錄B/</Prefix>
</CommonPrefixes>
</ListBucketResult>
可以看到:
Contents返回的是第一層的文件:“文件D”。
CommonPrefixes返回的是第一層的目錄:“目錄A/” 和 “目錄B/”,而“目錄A/” 和 “目錄B/”下的文件名不顯示。
2. 列出第二層目錄A底下的目錄和文件
根據API中請求約定,需要設置Prefix為“目錄A”,Delimiter為"/":
返回結果如下:
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult>
<Name>oss-sample</Name>
<Prefix>目錄A/</Prefix>
<Marker></Marker>
<MaxKeys>1000</MaxKeys>
<Delimiter>/</Delimiter>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>目錄A/文件C</Key>
<LastModified>2015-11-06T09:36:00.000Z</LastModified>
<ETag>"B026324C6904B2A9CB4B88D6D61C81D1"</ETag>
<Type>Normal</Type>
<Size>2</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>oss</ID>
<DisplayName>oss</DisplayName>
</Owner>
</Contents>
<Contents>
<Key>目錄A/文件D</Key>
<LastModified>2015-11-06T09:36:00.000Z</LastModified>
<ETag>"B026324C6904B2A9CB4B88D6D61C81D1"</ETag>
<Type>Normal</Type>
<Size>2</Size>
<StorageClass>Standard</StorageClass>
<Owner>
<ID>oss</ID>
<DisplayName>oss</DisplayName>
</Owner>
</Contents>
<CommonPrefixes>
<Prefix>目錄A/目錄B/</Prefix>
</CommonPrefixes>
<CommonPrefixes>
<Prefix>目錄A/目錄C/</Prefix>
</CommonPrefixes>
<CommonPrefixes>
<Prefix>目錄A/目錄D/</Prefix>
</CommonPrefixes>
</ListBucketResult>
可以看到:
Contents返回的是第二層的文件:“目錄A/文件C”,“目錄A/文件D”。
CommonPrefixes返回的是第一層的目錄:“目錄A/目錄B/”,“目錄A/目錄C/”和“目錄A/目錄D/”。而目錄下的文件名不會被顯示。
功能使用參考
- API:Get Bucket
- SDK:Java SDK-列出存儲空間中的文件
最後更新:2016-11-23 16:04:09
上一篇:
設置對象/文件元信息__管理文件_開發人員指南_對象存儲 OSS-阿裏雲
下一篇:
拷貝對象__管理文件_開發人員指南_對象存儲 OSS-阿裏雲
瀏覽Pipeline__Pipeline管理_Console參考手冊_數據集成-阿裏雲
ActionTrail支持查詢多久的操作記錄?__常見問題_常見問題_操作審計-阿裏雲
編寫Graph__快速開始_大數據計算服務-阿裏雲
MQTT 管理__控製台使用指南_消息隊列 MQ-阿裏雲
獲取域名的解析操作日誌__解析管理接口_API文檔_雲解析-阿裏雲
HBase 開發手冊__開發人員指南_E-MapReduce-阿裏雲
AlphaGo Zero橫空出世;利爾達:阿裏雲物聯網市場創始合作夥伴
刪除堆棧__堆棧相關接口_API 文檔_資源編排-阿裏雲
創建磁盤__磁盤相關接口_API 參考_雲服務器 ECS-阿裏雲
步驟1:配置四層轉發__快速入門(非網站業務)_DDoS 高防IP-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲