Skip to content

Commit

Permalink
Merge pull request #93 from YangSen-qn/list-bucket-filter-empty
Browse files Browse the repository at this point in the history
BucketManager func change: BatchWithBucket -> BatchWithContext
  • Loading branch information
bachue authored Apr 23, 2023
2 parents d666ce3 + 66472af commit 9d4dcc9
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
12 changes: 7 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# Changelog
## 7.15.0
* 表单上传 Put 函数 PutExtra 参数支持为 nil
* BucketManager 新增函数 BatchWithBucket
* bucket 镜像源/配额 API 使用 UC 域名
* BucketManager 接口 ListBucket 和 ListBucketContext 内部由 /v2/list 调整为 /list
* BucketManager 增加接口 ListFileWithContext
* 优化
* 表单上传 Put 方法的 PutExtra 参数,支持传入 nil
* Bucket 镜像源/配额方法内部请求使用 UC 域名
* BucketManager ListBucket 和 ListBucketContext 方法内部接口由 /v2/list 调用调整为 /list
* 新增
* BucketManager 新增批量方法 BatchWithContext
* BucketManager 增加 Bucket 列举方法 ListFileWithContext

## 7.14.0
* Go SDK 对七牛回调请求的鉴权验证函数支持 Qiniu 签名
Expand Down
16 changes: 10 additions & 6 deletions storage/bucket.go
Original file line number Diff line number Diff line change
Expand Up @@ -476,30 +476,34 @@ func (m *BucketManager) Batch(operations []string) ([]BatchOpRet, error) {
return nil, errors.New("can't get one bucket from operations")
}

return m.BatchWithBucket(bucket, operations)
return m.BatchWithContext(nil, bucket, operations)
}

// BatchWithBucket 接口提供了资源管理的批量操作,支持 stat,copy,move,delete,chgm,chtype,deleteAfterDays几个接口
// BatchWithContext 接口提供了资源管理的批量操作,支持 stat,copy,move,delete,chgm,chtype,deleteAfterDays几个接口
// @param ctx context.Context
// @param bucket operations 列表中任意一个操作对象所属的 bucket
// @param operations 操作对象列表,操作对象所属的 bucket 可能会不同,但是必须属于同一个区域
func (m *BucketManager) BatchWithBucket(bucket string, operations []string) ([]BatchOpRet, error) {
func (m *BucketManager) BatchWithContext(ctx context.Context, bucket string, operations []string) ([]BatchOpRet, error) {
host, err := m.RsReqHost(bucket)
if err != nil {
return nil, err
}
return m.batchOperation(host, operations)
return m.batchOperation(ctx, host, operations)
}

func (m *BucketManager) batchOperation(reqURL string, operations []string) (batchOpRet []BatchOpRet, err error) {
func (m *BucketManager) batchOperation(ctx context.Context, reqURL string, operations []string) (batchOpRet []BatchOpRet, err error) {
if len(operations) > 1000 {
err = errors.New("batch operation count exceeds the limit of 1000")
return
}
params := map[string][]string{
"op": operations,
}
if ctx == nil {
ctx = context.Background()
}
reqURL = fmt.Sprintf("%s/batch", reqURL)
err = m.Client.CredentialedCallWithForm(context.Background(), m.Mac, auth.TokenQiniu, &batchOpRet, "POST", reqURL, nil, params)
err = m.Client.CredentialedCallWithForm(ctx, m.Mac, auth.TokenQiniu, &batchOpRet, "POST", reqURL, nil, params)
return
}

Expand Down

0 comments on commit 9d4dcc9

Please sign in to comment.