功能说明
放弃一个未完成的分块上传(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 mainimport ("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。