前缀列表查询

使用说明

  • 获取存储空间(Bucket)中指定文件前缀的文件列表。

函数说明

getfilelist(bucket, prefix=None, marker=None, limit=None, header=None)

​ 获取bucket下的文件列表

Parameters

  • bucket – string 类型,空间名称
  • prefix – string 类型,文件前缀, 默认为空字符串
  • marker – string 类型,文件列表起始位置, 默认为空字符串
  • limit – integer 类型,文件列表数目, 默认为20
  • header – dict类型,http 请求header,键值对类型分别为string,比如{'User-Agent': 'Google Chrome'}

Returns

  • ret: 如果http状态码为[200, 204, 206]之一则返回None,否则如果服务器返回json信息则返回dict类型,键值对类型分别为string, unicode string类型,否则返回空的dict
  • ResponseInfo: 响应的具体信息,UCloud UFile 服务器返回信息或者网络链接异常

ResponseInfo Elements

Name Type Description
BucketName String Bucket的名称
BucketId String Bucket的ID
NextMarker String 下一个标志字符串,utf-8编码
DataSet Array 文件列表

DataSet Item

Name Type Description
BucketName String 文件所属Bucket名称
FileName String 文件名称,utf-8编码
Hash String 文件hash值
MimeType Array 文件mimetype
Size Integer 文件大小
CreateTime Integer 文件创建时间
ModifyTime Integer 文件修改时间
StorageClass String 文件存储类型,分别是标准、低频、归档,对应有效值:STANDARD, IA, ARCHIVE

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public_key = ''                 #账户公钥
private_key = ''                #账户私钥

bucket = ''                     #空间名称

from ufile import filemanager

getfilelist_hander = filemanager.FileManager(public_key, private_key)

prefix='' #文件前缀
limit=10  #文件列表数目
marker='' #返回以字母排序后,大于marker的文件列表
ret, resp = getfilelist_hander.getfilelist(bucket, prefix=prefix, limit=limit, marker=marker)
assert resp.status_code == 200
for object in ret["DataSet"]:
    print(object)

# 根据返回值'NextMarker'循环遍历获得所有结果(若一次查询无法获得所有结果)
while True:
    ret, resp = getfilelist_hander.getfilelist(bucket, prefix=prefix, limit=limit, marker=marker)
    assert resp.status_code == 200

    for object in ret["DataSet"]:#
        print(object)

    marker = ret['NextMarker']
    if  len(marker) <= 0 or len(ret['DataSet']) < limit:
        break