github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/objects/bucket.go (about) 1 package objects 2 3 import ( 4 "context" 5 "strings" 6 ) 7 8 type ( 9 // 存储空间 10 Bucket struct { 11 name string 12 objectsManager *ObjectsManager 13 } 14 15 // 列举对象选项 16 ListObjectsOptions struct { 17 Limit *uint64 // 最大列举数量 18 Prefix string // 前缀 19 Marker string // 标记 20 NeedParts bool // 是否需要分片信息 21 } 22 ) 23 24 // 存储空间名称 25 func (bucket *Bucket) Name() string { 26 return bucket.name 27 } 28 29 // 获取存储空间对象 30 func (bucket *Bucket) Object(name string) *Object { 31 return &Object{bucket, name} 32 } 33 34 // 获取存储空间目录 35 func (bucket *Bucket) Directory(prefix, pathSeparator string) *Directory { 36 if pathSeparator == "" { 37 pathSeparator = "/" 38 } 39 if prefix != "" && !strings.HasSuffix(prefix, pathSeparator) { 40 prefix += pathSeparator 41 } 42 return &Directory{bucket, prefix, pathSeparator} 43 } 44 45 // 列举对象 46 func (bucket *Bucket) List(ctx context.Context, options *ListObjectsOptions) Lister { 47 if options == nil { 48 options = &ListObjectsOptions{} 49 } 50 51 switch bucket.objectsManager.listerVersion { 52 case ListerVersionV1: 53 fallthrough 54 default: 55 return newListerV1(ctx, bucket, options) 56 } 57 }