Skip to content
大纲

ListObjects

接口描述

本接口用于获得指定Bucket的Object信息列表。

请求(Request)

请求语法

GET /<BucketName> HTTP/1.1
Host: fos.flymeyun.com
Date: <Date>

请求头域

无特殊Header参数

请求参数

字段类型是否必需描述
delimiterString分隔符; 主要用此项实现list文件夹的逻辑。如果在请求的时候指定了delimiter,FOS把匹配到的Object名称按照一定规则(从preifx到第一个delimiter)截取,截取的字符串去重作为CommonPrefixes的数据返回; delimiter长度限制为1
markerStringobject为字母序排列,从marker之后的第一个开始返回
maxKeysInt返回object列表长度最大为1000,默认值是1000,如果指定的值大于1000,按1000操作
prefixStringkey前缀,限定返回的object key必须以此为前缀

响应(Response)

响应头域

无特殊Header参数响应

响应元素

名称类型描述
commonPrefixesArray仅当指定delimiter,才会返回此项
+prefixString匹配以prefix开始到第一次出现Delimiter字符之间的object作为一组元素返回
contentsArray返回的一个object的列表
+keyStringObject名称
+lastModifiedDate此Object最后一次被修改的时间
+eTagStringObject的HTTP协议实体标签
+sizeIntObject的内容的大小(字节数)
delimiterString查询的结束符
isTruncatedBool指明是否查询完整返回了;false-本次已经返回所有结果,true-本次还没有返回所有结果
maxKeysInt请求返回的最大数目
markerString本次查询的起点
nameStringBucket名称
nextMarkerString当IsTruncated true时,才返回此项,作为下次查询marker的值
prefixString查询的前缀

注意事项 Delimiter可以用来实现文件夹逻辑:

  1. 如果把prefix设为某个文件夹名,就可以罗列以此prefix开头的文件,即该文件夹下递归的所有的文件和子文件夹内的文件。
  2. 如果再把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/"}
    ]
}