帮你快速理解、总结文档立即下载

批量删除对象

最近更新时间:2026-10-21 18:34:06
本文档已由 AI 辅助审校
我的收藏

功能说明

在一次请求中批量删除高性能桶中的多个对象(DELETE Multiple Objects),单次最多支持 1000 个对象。对高性能桶发起请求时,SDK 通过 RapidCredentialTransport 自动完成会话鉴权。

方法原型

func (s *ObjectService) DeleteMulti(ctx context.Context, opt *ObjectDeleteMultiOptions) (*ObjectDeleteMultiResult, *Response, error)

参数说明

type ObjectDeleteMultiOptions struct {
Quiet bool
Objects []Object
}

type Object struct {
Key string
}
参数名称
参数描述
类型
是否必选
ctx
请求上下文,用于控制超时与取消
context.Context
是
opt
批量删除选项,指定待删除的对象列表
*ObjectDeleteMultiOptions
是
Quiet
结果模式。false(Verbose)返回每个对象的删除结果;true(Quiet)仅返回删除失败的对象
bool
否
Objects
待删除的对象列表,每个 Object 通过 Key 字段指定对象键,数量为1~1000
[]Object
是

返回结果说明

type ObjectDeleteMultiResult struct {
DeletedObjects []Object
Errors []struct {
Key string
Code string
Message string
}
}
参数名称
参数描述
类型
DeletedObjects
删除成功的对象列表
[]Object
Errors
删除失败的对象列表,每项含 Key、Code、Message
[]struct
*Response
响应对象
*cos.Response
error
错误信息,成功时为 nil
error

使用案例

package main

import (
"context"
"log"
"net/http"
"net/url"
"os"
"time"

"github.com/tencentyun/cos-go-sdk-v5"
)

func main() {
u, _ := url.Parse("https://examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.com")
b := &cos.BaseURL{BucketURL: u}
base := &cos.AuthorizationTransport{
SecretID: os.Getenv("SECRETID"),
SecretKey: os.Getenv("SECRETKEY"),
}
c := cos.NewClient(b, &http.Client{
Transport: cos.NewRapidCredentialTransport(base),
Timeout: 30 * time.Second,
})

ctx := context.Background()
opt := &cos.ObjectDeleteMultiOptions{
Objects: []cos.Object{
{Key: "a.txt"},
{Key: "b.txt"},
},
}

res, _, err := c.Object.DeleteMulti(ctx, opt)
if err != nil {
log.Fatalf("DeleteMulti failed: %v", err)
}
log.Printf("DeleteMulti OK, deleted: %d, errors: %d", len(res.DeletedObjects), len(res.Errors))
}

注意事项

单次请求删除对象数量为 1~1000,超出请分批调用。
即使整体请求返回成功,仍需检查 res.Errors,其中记录了删除失败的对象及原因。
将 Quiet 置为 true 可减少返回内容,仅返回删除失败的对象信息。
错误处理方式请参见 异常处理。