追加上传

更新时间:2025-08-18 15:31:59

追加上传接口允许用户直接向对象追加内容,并且每次追加上传的数据可以立即读取。在这种方式下操作的对象称为可追加对象。

请求描述

Token的计算和上传策略的定义与普通上传接口一致。每次追加操作都是根据普通上传策略进行的。

请求格式

POST /append/<position>
Host: <UploadDomain>
Content-Length:<appendSize>
Content-Type: multipart/form-data; boundary=<boundary>

--<boundary>
Content-Disposition: form-data; name="token"

<uploadToken>
--<boundary>
Content-Disposition: form-data; name="<x:VariableName>"

<x:VariableValue>
--<boundary>
Content-Disposition: form-data; name="key"
    
<key>
--<boundary>
Content-Disposition: form-data; name="mimeType"
    
<mimeType>
--<boundary>
Content-Disposition: form-data; name="deadline"
    
<deadline>
--<boundary>
Content-Disposition: form-data; name="file"; filename="原文件名"
Content-Type: application/octet-stream
    
<fileBinaryData>
--<boundary>--

请求消息参数

参数名称 描述 必需
append 表示追加上传的方式。
position 表示追加的位置和可追加对象的大小。

请求头部

Header名称 必需 描述
Host 上传域名,可在控制台空间概览界面获取。
Content-Length 追加内容的长度
Content-Type 标准MIME类型。
类型:字符串。
固定值:multipart/form-data。

表单描述

参数 必需 描述
<token> 上传凭证
<x:VariableName> 自定义变量的值名称。
<key> 自定义文件名
<mimeType> 自定义文件的MIME类型。
<deadline> 文件保留天数。超过保留天数的文件将自动删除,单位:天。例如:1, 2, 3…
注意:0表示尽快删除,不建议在文件上传时配置为0。
<file> 文件本身
<fileBinaryData> 文件的二进制流。

响应描述

响应格式

HTTP/1.1 status_code
x-wcs-next-append-position:object size
x-wcs-object-type:Appendable
Server: WS-web-server
<ResponseContent>

响应头部

Header名称 必需 描述
x-wcs-next-append-position 表示下次追加的位置。
类型:字符串。
x-wcs-object-type 表示对象的类型,为Appendable表示可追加,为Normal表示不可追加。
类型:字符串。

响应体
如果请求成功,<ResponseContent> 将是以下内容的URL安全Base64编码

hash=<filehash>
字段名称 必需 描述
<filehash> 文件的哈希值。

注意:如果在上传时定义了returnBody,则returnBody的内容将被添加到返回内容中,例如,name=&size=hash=
如果请求失败,<ResponseContent> 将是以下内容的Json字符串:

{
    "code":     "<code string>",
    "message":  "<message string>"
}
字段名称 必需 描述
code HTTP请求响应代码,参见HTTP响应状态代码
message 提示信息。

示例

curl -v -i -X POST -H "Expect:" -F file=@D:/8.png -F key=m.png -F token="6a69ab4062cb03059e4c13a0f5e662523effad49:ZGE1MWY1YzA4ZDgyMjVlM2Q3MmE2YjZkZDI3MmY1ZmMxNjk2YTFjOA==:eyJzY29wZSI6InRlc3QiLCJkZWFkbGluZSI6IjE0NzIxNzY2MzQwMDAiLCJvdmVyd3JpdGUiOjAsImZzaXplTGltaXQiOjAsImluc3RhbnQiOjAsInNlcGFyYXRlIjowfQ=="  --url http://uploaddomain.com/append/0

注意事项

  1. URL参数必须包含append以指示为追加操作。
  2. URL参数必须包含position以指示追加的位置。第一次追加操作的位置必须为0,后续追加操作的position必须为当前对象的长度,否则返回409错误和PositionNotEqualToLength错误代码。在上述错误中,用户可以通过响应头X-wcs-next-append-position获取下一个位置并再次请求。
  3. 当位置为0,如果相同名称下没有可追加对象,或相同名称可追加对象的长度为0,请求成功,其他情况将返回PositionNotEqualToLength。
  4. 每次追加对象的长度不能超过2G,追加对象每次都会更新对象的最后修订时间。
  5. 如果追加长度为0的内容到现有的且位置正确的可追加对象,操作会成功但不会改变对象状态。
  6. 在追加操作中,禁止并发追加同一对象。
  7. 追加操作需要具备对目标对象的写权限。
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!