github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/third/kmgQiniu/List.go (about) 1 package kmgQiniu 2 3 import ( 4 "io" 5 6 "github.com/bronze1man/kmg/kmgErr" 7 "github.com/qiniu/api/rsf" 8 ) 9 10 // 列出所有前缀是xxx的数据, 11 // 已处理1000个限制 12 // 已看过sdk的文档,此处没有很简单的办法可以进行并发优化. 13 func ListPrefix(ctx *Context, prefix string) (entries []rsf.ListItem, err error) { 14 var marker = "" 15 for { 16 var thisEntries []rsf.ListItem 17 thisEntries, marker, err = ctx.rsfClient.ListPrefix(nil, ctx.bucket, 18 prefix, marker, 1000) 19 entries = append(entries, thisEntries...) 20 if err == io.EOF { 21 return entries, nil 22 } 23 if err != nil { 24 kmgErr.LogErrorWithStack(err) 25 return entries, err 26 } 27 if len(thisEntries) < 1000 { 28 break 29 } 30 } 31 return 32 }