开发者社区 问答 正文

如何将Part上传



描述


此操作会上传文档中的一段。用户可以按任何顺序上传文档分段。在请求中需要指定Part在整个文档中的字节范围,并计算该Part的校验码,校验码必须包含x-oas-content-etag和x-oas-tree-etag两类,校验码计算方法参见2.5.1和2.5.2。如果上传的Part大小超过Content-Length指定的字节长度,归档存储只会读取Content-Length指定字节长度的数据;小于Content-Length,会返回错误。如果Part范围未对齐或者范围指定的字节长度与初始化任务时指定的Part字节长度不等(除最后一段),则是一个失败的请求。例如,如果您指定67108864(64MB)的Part大小,则0-67108863 (64MB-1)以及67108864-1342177287(128MB-1)为有效的段范围,而2097152-69206015(2MB到66MB-1)、0-66060287(0到63MB-1)和0-68157439(0到65MB-1)都是无效的范围。

请求参数




请求头部

名称是否必须描述
Content-LengthPart的长度,以字节为单位
Content-Range标识将在此段中上传的组装Archive的字节范围,归档存储会使用此信息来以正确的顺序组装Archive。
x-oas-content-etagPart的MD5校验码,用于检查接收的Part是否完整,计算方法参见2.5.1
x-oas-tree-etagPart的tree-hash校验码,用于检查接收的Part是否完整,计算方法参见2.5.2

其他公共请求头部参见2.4.1

请求体


需要上传的Part的数据

返回头部


无,其他公共返回头部参见2.4.2

返回体




示例


请求示例 PUT /vaults/[VaultId]/multipart-uploads/[UploadId] HTTP/1.1
Host: cn-hangzhou.oas.aliyuncs.com
Date: Tue, 25 Mar 2014 12:00:00 GMT
Content-Range: 0-67108863
x-oas-content-etag: FD61CCDFAACA1088CF440B1E822DE1B6
x-oas-tree-etag:9D739013ABAE399C173B3C3415BDC69A
Content-Length: 67108864
Authorization: [SignatureValue]


返回示例 HTTP/1.1 204 No Content
x-oas-request-id: [RequestId]
Date: Tue, 25 Mar 2014 12:00:00 GMT

展开
收起
云栖大讲堂 2017-10-26 14:09:04 1861 分享 版权
阿里云 AI 助理回答

在进行文档分段上传至归档存储时,您需要遵循特定的规则和步骤以确保操作成功。以下是关键点概述:

  1. Part范围定义

    • 您可以按任意顺序上传文档的不同部分(Part)。每个Part上传时,必须明确指定其在整个文档中的字节范围。
    • 有效范围示例:如果Part大小设定为64MB,则有效的起始范围是0至67108863(即64MB-1),后续Part应从上一个Part结束位置紧接着开始,保持连续且对齐。
  2. 请求头部要求

    • Content-Length:是必填项,表示您将上传的Part数据长度(以字节为单位)。
    • Content-Range:同样是必填项,用于标识上传Part的字节范围,确保归档存储能正确组装文档。
    • x-oas-content-etag:此头部用于存放Part的MD5校验码,确保数据完整性,计算方法请参考相关文档。
    • x-oas-tree-etag:存放Part的tree-hash校验码,作为额外的数据完整性验证,计算方法同上。
  3. 请求体内容

    • 直接包含您需要上传的Part数据。
  4. 响应解析

    • 成功上传Part后,服务器将返回HTTP状态码204 No Content,表明请求被成功处理,但无具体响应体内容。
    • 返回头部会包含如x-oas-request-id,可用于跟踪请求。
  5. 注意事项

    • Part范围必须正确对齐且长度与初始化任务时设定的Part大小相符,除非是最后一个Part。
    • 若上传的Part大小超过或小于Content-Length指定的长度,将导致错误。
    • 计算校验码(MD5及tree-hash)对于验证数据完整性至关重要。

示例请求展示如下:

PUT /vaults/[VaultId]/multipart-uploads/[UploadId] HTTP/1.1
Host: cn-hangzhou.oas.aliyuncs.com
Date: Tue, 25 Mar 2014 12:00:00 GMT
Content-Range: 0-67108863
x-oas-content-etag: FD61CCDFAACA1088CF440B1E822DE1B6
x-oas-tree-etag: 9D739013ABAE399C173B3C3415BDC69A
Content-Length: 67108864
Authorization: [SignatureValue]

确保在实际操作中替换[VaultId][UploadId]以及签名值[SignatureValue]为您的具体信息,并根据文档分段上传的具体要求调整Content-Range和Content-Length等参数。

参考资料: 校验码计算方法参见相关文档章节2.5.1和2.5.2,虽然这里未直接提供计算方法详情,但在执行此类上传前,请务必查阅并理解这些计算规则以保证数据传输的准确性。

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