应用场景
媒体存储提供了数据一致性校验功能,可以避免因为网络劫持、数据缓存等原因导致的数据不一致问题。
能力概述
媒体存储提供通过计算MD5值的方式对上传的数据进行一致性校验。默认情况下,服务不会进行一致性校验。
上传对象时,客户端需要先计算出对象的MD5值然后携带上传至媒体存储,媒体存储服务端再根据上传的对象内容计算出MD5值,最终与携带上传的MD5值进行对比。
如果对比结果一致,对象上传成功,否则上传失败。
具体校验逻辑如下图所示:
校验方法
- 本地对象计算出的MD5值作为请求头。
- 上传时设置请求消息参数Content-MD5为本地计算得出的校验值,具体示例如下:
-
请求示例:
PUT /v1/testbucket/test HTTP/1.1
-
请求头header:
Host:gdoss.xstore.ctyun.cn Date:Wed, 28 Oct 2023 09:32:00 GMT Authorization:authorization string Content-Type:text/plain Content-Length:1145 Content-MD5:gnzLDu***********hOew==
-
请求体body:
实际文件数据。
-
- MD5计算方式为:openssl dgst -md5 -binary 上传的对象(example.txt) | base64 。