开发者社区 问答 正文

关于MultipartUpload的操作之AbortMultipartUpload?

该接口可以根据用户提供的Upload ID中止其对应的Multipart Upload事件。当一个Multipart Upload事件被中止后,就不能再使用这个Upload ID做任何操作,已经上传的Part数据也会被删除。

请求语法DELETE /ObjectName?uploadId=UploadId HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: Signature





细节分析

  1. 中止一个Multipart Upload事件时,如果其所属的某些Part仍然在上传,那么这次中止操作将无法删除这些Part。所以如果存在并发访问的情况,为了彻底释放OSS上的空间,需要调用几次Abort Multipart Upload接口。
  2. 如果输入的Upload Id不存在,OSS会返回404错误,错误码为:NoSuchUpload。


示例


[backcolor=transparent]请求示例: Delete /multipart.data?&uploadId=0004B9895DBBB6EC98E  HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfj byc:J/lICfXEvPmmSW86bBAfMmUmWjI=


[backcolor=transparent]返回示例: HTTP/1.1 204
Server: AliyunOSS
Connection: keep-alive
x-oss-request-id: 059a22ba-6ba9-daed-5f3a-e48027df344d
Date: Wed, 22 Feb 2012 08:32:21 GMT

展开
收起
青衫无名 2017-10-23 09:57:18 2338 分享
分享
版权
举报
阿里云 AI 助理回答

中止Multipart Upload事件是通过调用AbortMultipartUpload接口实现的,该操作依据提供的Upload ID来取消对应的分片上传任务。重要注意事项如下:

  1. 操作效果:中止后,该Upload ID将无法用于任何其他操作,并且已上传的Part数据会被删除,前提是这些Part未被其他操作锁定或正在上传中。

  2. 并发处理:如果在中止时,有部分Part仍在上传过程中,这些Part可能不会被立即删除。为了确保所有相关Part都被清理,尤其是在并发上传的场景下,可能需要根据实际情况重试AbortMultipart Upload接口调用,直至确认所有Part均被成功删除。

  3. 错误处理:如果尝试中止一个不存在的Upload ID,OSS会响应错误码NoSuchUpload,表示没有找到对应的Multipart Upload事件。

  4. 请求示例:正确的请求格式应为DELETE方法,携带Upload ID作为查询参数,例如:

    DELETE /ObjectName?uploadId=UploadId HTTP/1.1
    Host: BucketName.oss-cn-hangzhou.aliyuncs.com
    Date: GMT Date
    Authorization: Signature
    

    其中,确保替换BucketNameObjectNameUploadId为实际的Bucket名称、Object名称和Upload ID值。

综上所述,使用AbortMultipartUpload接口可以有效中止Multipart Upload事件并清理已上传的Part,但在处理并发上传或不确定Part状态时,需注意可能需要多次尝试以确保彻底中止并释放资源。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等