文件流上传方法

接口地址: 获取文件直传地址接口获取到的uploadUrl

接口描述:

  1. 使用获取文件直传地址接口获取到的uploadUrl进行文件流上传
  2. 上传使用HTTP PUT方式上传
  3. 上传时需要在HTTP Header中增加字段Content-MD5和Content-Type,字段值与获取文件直传地址接口中contentMd5和contentType值保持一致,否则会出现错误码为403的错误。

请求参数:

1.Content-MD5:base64编码的文件MD5 2.Content-Type:文件MIME类型 3.HTTP BODY:待上传文件的二进制字节流

请求示例:

PUT /ObjectName HTTP/1.1
Content-Length:ContentLength
Content-Type:ContentType
Content-MD5:eB5eJF1ptWaXm4bijSPyxw==

响应示例

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Tue, 04 Dec 2018 15:56:38 GMT
Content-Length: 0
Connection: keep-alive
x-oss-request-id: 5C06A3B67B8B5A3DA422299D
ETag: "D41D8CD98F00B204E9800998ECF8427E"
x-oss-hash-crc64ecma: 0
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
x-oss-server-time: 7

如何计算Content-MD5?

首先计算MD5加密的二进制数组(128位),然后再对这个二进制数组进行base64编码(而不是对32位字符串编码)。例如,用Python计算0123456789的Content-MD5,代码为:

>>> import base64,hashlib
>>> hash = hashlib.md5()
>>> hash.update("0123456789")
>>> base64.b64encode(hash.digest())
'eB5eJF1ptWaXm4bijSPyxw=='

results matching ""

    No results matching ""