使用场景
1. WEB直传
2. APP经过服务器中转上传到OSS,(APP每上传“一部分”内容,服务器直接通过uploadPart上传到OSS)这两种方式服务器均无法取得整个文件的Content-MD5,因为服务器在上传完成前,无法得知文件的整个内容)。
文件使用multiuploadFile分片上传,当文件大小超过 OssUtil::OSS_MID_PART_SIZE或者设置分片大小,进行上传, 完成上传后, 使用getObjectMeta, etag出现带编号的字符,类似""DBBCA06B72052598E18B038678236B8B-5"",Content-MD5值为空不存在。
错误似乎发生:completeMultipartUpload对象的ETag变成了这个请求中XML加密算法后生成的ETag。这里似乎缺少一步,即设置整个文件对象的ETag以及Content-MD5。
help.aliyun.com/document_detail/31995.html 在这个链接中返回示例中返回也是类似的ETag。
但是如果按照这个逻辑,整个OSS通过分片上传产生的ETag以及Content-MD5都会有问题,那其它用户是如何取得正确的Content-MD5的?
对WEB端JS直传进行测试,如果进行分片上传,该对象的ETag及Content-MD5同样会使用最后一片上传内容的ETag和Content-MD5。
那如果假定所有的Content-MD5不可用,如何使用SDK取得某一个对象的正确的Content-MD5值?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。