From d7e9044f81df25e96dea48b24872df45daeaa1ea Mon Sep 17 00:00:00 2001 From: YangSen-qn Date: Fri, 21 Apr 2023 15:39:04 +0800 Subject: [PATCH] BucketManager func: BatchWithBucket -> BatchWithContext --- CHANGELOG.md | 12 +++++++----- storage/bucket.go | 16 ++++++++++------ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a2a0f5d..b749f2f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 签名 diff --git a/storage/bucket.go b/storage/bucket.go index 218440fb..d9b502c7 100644 --- a/storage/bucket.go +++ b/storage/bucket.go @@ -476,21 +476,22 @@ 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 @@ -498,8 +499,11 @@ func (m *BucketManager) batchOperation(reqURL string, operations []string) (batc 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 }