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-阿里云