Skip to content

Commit f664e3a

Browse files
committed
add list_all
1 parent 7e452d7 commit f664e3a

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed

docs/README.gist.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,13 @@ ret是一个字典,含有`hash`,`key`等信息。
420420
421421
@gist(demo.py#list_prefix)
422422
```
423+
424+
一个典型的对整个bucket遍历的操作为:
425+
426+
```{python}
427+
@gist(demo.py#list_all)
428+
```
429+
423430
<a name="fop"></a>
424431
### 云处理
425432

docs/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,26 @@ if err is not None:
559559
return
560560
print rets2
561561
```
562+
563+
一个典型的对整个bucket遍历的操作为:
564+
565+
```{python}
566+
def list_all(bucket, rs=None, prefix=None, limit=None):
567+
if rs is None:
568+
rs = qiniu.rsf.Client()
569+
marker = None
570+
err = None
571+
while err is None:
572+
ret, err = rs.list_prefix(bucket_name, prefix=prefix, limit=limit, marker=marker)
573+
marker = ret.get('marker', None)
574+
for item in ret['items']:
575+
#do something
576+
pass
577+
if err is not qiniu.rsf.EOF:
578+
# 错误处理
579+
pass
580+
```
581+
562582
<a name="fop"></a>
563583
### 云处理
564584

docs/demo.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def get_demo_list():
6868
resumable_put, resumable_put_file,
6969
stat, copy, move, delete, batch,
7070
image_info, image_exif, image_view,
71-
list_prefix,
71+
list_prefix, list_prefix_all,
7272
]
7373

7474
def run_demos(demos):
@@ -332,6 +332,27 @@ def list_prefix():
332332
print rets2
333333
# @endgist
334334

335+
def list_prefix_all():
336+
''' 列出所有 '''
337+
list_all(bucket_name, prefix='test_Z', limit=10)
338+
339+
# @gist list_all
340+
def list_all(bucket, rs=None, prefix=None, limit=None):
341+
if rs is None:
342+
rs = qiniu.rsf.Client()
343+
marker = None
344+
err = None
345+
while err is None:
346+
ret, err = rs.list_prefix(bucket_name, prefix=prefix, limit=limit, marker=marker)
347+
marker = ret.get('marker', None)
348+
for item in ret['items']:
349+
#do something
350+
pass
351+
if err is not qiniu.rsf.EOF:
352+
# 错误处理
353+
pass
354+
# @endgist
355+
335356
if __name__ == "__main__":
336357
_setup()
337358

0 commit comments

Comments
 (0)