上传到OSS的文件md5hash值如何获取?!!-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

上传到OSS的文件md5hash值如何获取?!!

asker 2015-08-05 16:52:10 17478
花了1天多时间,终于搞定VS IDE下C SDK的编译,我只想说能不能考虑下别用C99语法呀,VS不支持呀!每次编译开源代码,总是各种改,各种依赖库,各种麻烦!!


接下来看了测试用例代码,发现C SDK果然是后娘养的,跟JAVA SDK没法比,multi方式文件上传的测试用例没有采用多线程方式上传,我想问下这测试用例有意义吗?


好吧,认了,自己实现!等等,实现好了之后,我想校验下上传的文件完整性是否存在问题,自然而然就是希望服务端返回我整个文件的md5,结果找遍论坛,竟然没有...


要获取md5,只有自己上传前设置到meta数据中,我想说这是我想要的结果吗?我是要校验上传的内容有没有问题才需要服务端告诉我上传文件的md5,就不能提供一下嘛!!


我就想问下,我该怎么校验文件的完整性,上传完毕之后再下载下来,本地重新计算下是否跟原文件是否一致?还是我本地也这么计算hash值:md5(md5(分块1) + md5(分块2) + ...)_分块个数?
不管哪种方法,都麻烦的要死,既然如此,我想问下:oss开发者就不能站在我们使用者的角度考虑问题吗???


不好意思,吐槽了这么多,就是这几天被oss给折腾的好“不爽”,见谅!见谅!


最后我还是想问,如何获取multi方式上传文件的md5(整个文件),让我来校验上传文件操作的完整性一致!!!



IDE Java 测试技术 开发工具 对象存储 C语言 C++ 开发者
分享到
取消 提交回答
全部回答(4)
  • 1779606079842409
    2020-06-15 14:42:51

    挖坟 5年过去了。。。oss开发团队竟然还没有提供server端文件的md5值查询,简直了

    3 0
  • deadbeef
    2015-08-06 17:57:41
    目前OSS文档说上传的每个part的etag就是md5,至少可以验证每个part的完整性。
    0 0
  • asker
    2015-08-06 10:52:25
    回4楼yjseu的帖子
    朋友,非常感谢终于推出了windows版本的sdk!!

    但是我已经基于原有的c sdk搞定了windows,所以对我来说目前最大的困扰不在于sdk本身,而在于oss存储服务本身;

    我不清楚是不是我的表述能力有问题还是您没能理清我的困恼?故而我在重新贴一下吧!!

    我如何才能确保上传到oss的文件跟我上传的文件一致,我能想到的方法有2个,就是如下:
    1、上传完毕之后再下载下来,本地重新计算下是否跟原文件是否一致?
    2、本地这么计算hash值:md5(md5(分块1) + md5(分块2) + ...)_分块个数跟服务器返回的ETag比对?

    这2中方法都不优雅,麻烦,我只是想问下,有其他优雅的方法能解决我的困扰吗???谢谢!
    0 0
  • yjseu
    2015-08-05 18:16:13
    Re上传到OSS的文件md5hash值如何获取?!!
    您好,首先对于C SDK没有提供windows版本给您造成的困扰表示抱歉。目前官网上提供的c sdk是基于*nix平台的,您也注意到其中的第三方库需要用户自己安装,主要是因为*nix平台种类比较多,没有好的办法直接提供第三方库并且能够解决兼容性问题。
    windows版本之前计划就这两天发布的,里面对您说的C99问题都处理过,另外一个重要的考虑是因为windows版本相对比较统一,想把第三方库提供给用户,并且提供VC的工程文件,尽量方便用户。
    对于您提到的multipart并发上传问题,c sdk本身不会做并发多线程处理,我们后面会完善sdk sample,给出并发上传的例子。目前c sdk发布不久,我们也在不断的完善过程中,非常感谢您给出的宝贵意见,我们会不断改进。
    最后,您提到的大文件使用multipart上传校验问题,由于对于multipart的md5不一定是文件内容的md5,这个还是建议您在上传时设置在meta数据中。

    -------------------------

    回2楼asker的帖子
    对于您说的c sdk windows版本我们这几天就会提供,请您关注一下,也欢迎您提供宝贵的建议。
    对于您说的并发接口,一个想法是在 c sdk的基础上做一个类似osscmd工具,方便用户的使用,当然,您说的在c sdk里面直接封装一个接口我们也会认真考虑

    -------------------------

    回2楼asker的帖子
    c sdk windows版本已经在论坛中发布,欢迎您试用,有不足的地方也请提出
    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题