Appearance
ListObjects
接口描述
本接口用于获得指定Bucket的Object信息列表。
请求(Request)
请求语法
GET /<BucketName> HTTP/1.1
Host: fos.flymeyun.com
Date: <Date>
请求头域
无特殊Header参数
请求参数
字段 | 类型 | 是否必需 | 描述 |
---|---|---|---|
delimiter | String | 否 | 分隔符; 主要用此项实现list文件夹的逻辑。如果在请求的时候指定了delimiter,FOS把匹配到的Object名称按照一定规则(从preifx到第一个delimiter)截取,截取的字符串去重作为CommonPrefixes的数据返回; delimiter长度限制为1 |
marker | String | 否 | object为字母序排列,从marker之后的第一个开始返回 |
maxKeys | Int | 否 | 返回object列表长度最大为1000,默认值是1000,如果指定的值大于1000,按1000操作 |
prefix | String | 否 | key前缀,限定返回的object key必须以此为前缀 |
响应(Response)
响应头域
无特殊Header参数响应
响应元素
名称 | 类型 | 描述 |
---|---|---|
commonPrefixes | Array | 仅当指定delimiter,才会返回此项 |
+prefix | String | 匹配以prefix开始到第一次出现Delimiter字符之间的object作为一组元素返回 |
contents | Array | 返回的一个object的列表 |
+key | String | Object名称 |
+lastModified | Date | 此Object最后一次被修改的时间 |
+eTag | String | Object的HTTP协议实体标签 |
+size | Int | Object的内容的大小(字节数) |
delimiter | String | 查询的结束符 |
isTruncated | Bool | 指明是否查询完整返回了;false-本次已经返回所有结果,true-本次还没有返回所有结果 |
maxKeys | Int | 请求返回的最大数目 |
marker | String | 本次查询的起点 |
name | String | Bucket名称 |
nextMarker | String | 当IsTruncated true时,才返回此项,作为下次查询marker的值 |
prefix | String | 查询的前缀 |
注意事项 Delimiter可以用来实现文件夹逻辑:
- 如果把prefix设为某个文件夹名,就可以罗列以此prefix开头的文件,即该文件夹下递归的所有的文件和子文件夹内的文件。
- 如果再把delimiter设置为 / 时,返回值就只罗列该文件夹下的文件,该文件夹下的子文件夹名返回在CommonPrefixes部分,子文件夹下递归的文件不被显示。 如一个bucket下存在三个object:fun/test.jpg,fun/movie/001.avi,fun/movie/007.avi。 若设定prefix为“fun/”,则返回三个object;如果增加设定delimiter为“/”,则返回文件“fun/test.jpg”和前缀“fun/movie/”。
示例
请求示例(JSON)1
json
GET /<BucketName> HTTP/1.1
Host: fos.flymeyun.com
Date: Wed, 06 Apr 2016 06:34:40 GMT
响应示例(JSON)1,递归列举所有object
json
HTTP/1.1 200 OK
x-fos-request-id: 4db2b34d-654d-4d8a-b49b-3049ca786409
Date: Wed, 06 Apr 2016 06:34:40 GMT
{
"name":"bucket",
"prefix":"",
"delimiter":"/",
"marker":"",
"maxKeys":1000,
"isTruncated":false,
"contents":[
{
"key":"my-image.jpg",
"lastModified":"2009-10-12T17:50:30Z",
"eTag":"fba9dede5f27731c9771645a39863328",
"size":434234
},
{
"key":"my-image1.jpg",
"lastModified":"2009-10-12T17:51:30Z",
"eTag":"0cce7caecc8309864f663d78d1293f98",
"size":124231
]
}
请求示例(JSON)2,列举根目录下的部分文件和子目录,受maxKeys限制(不包括子目录下的文件)
json
GET /<BucketName>?delimiter=/ HTTP/1.1
Host: fos.flymeyun.com
Date: Wed, 06 Apr 2016 06:34:40 GMT
响应示例(JSON)2
json
HTTP/1.1 200 OK
x-fos-request-id: 4db2b34d-654d-4d8a-b49b-3049ca786409
Date: Wed, 06 Apr 2016 06:34:40 GMT
{
"name":"bucket",
"prefix":"" ,
"delimiter":"/",
"marker":"",
"maxKeys":1000,
"isTruncated":false,
"contents":{
"key":"my-image.jpg",
"lastModified":"2009-10-12T17:50:30Z",
"eTag":"fba9dede5f27731c9771645a39863328",
"size":434234
},
"commonPrefixes":[
{"prefix":"photos/"},
{"prefix":"mtd/"}
]
}