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

终止分块上传

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

功能说明

放弃一个未完成的分块上传(Abort Multipart Upload),并删除已上传的所有分块以释放存储空间。对高性能桶发起请求时,SDK 通过 RapidCredentialTransport 自动完成会话鉴权。

方法原型

func (s *ObjectService) AbortMultipartUpload(ctx context.Context, name, uploadID string, opt ...*AbortMultipartUploadOptions) (*Response, error)

参数说明

参数名称
参数描述
类型
是否必选
ctx
请求上下文,用于控制超时与取消
context.Context
是
name
对象键(Object Key)
string
是
uploadID
初始化分块上传返回的 UploadID
string
是
opt
终止选项,可省略
...*AbortMultipartUploadOptions
否

返回结果说明

参数名称
参数描述
类型
*Response
响应对象,终止成功状态码为 204
*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()
name := "exampleobject.txt"
uploadID := "exampleUploadId"

_, err := c.Object.AbortMultipartUpload(ctx, name, uploadID)
if err != nil {
log.Fatalf("AbortMultipartUpload failed: %v", err)
}
log.Println("AbortMultipartUpload OK")
}

注意事项

终止后,该 uploadID 下已上传的分块会被删除且不可恢复。
已初始化但未完成的分块上传会占用存储空间并产生存储费用,不再需要时应及时终止;可通过 列举分块上传 查询桶内未完成的分块上传任务。
若终止时仍有正在上传该 uploadID 分块的请求,这些 上传分块 请求会失败;uploadID 不存在会返回 NoSuchUpload。
错误处理方式请参见 异常处理。