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  }