开发者社区> 问答> 正文

请问如何使用OSS的ContentMD5?

请问如何使用OSS的Content-MD5?
我原先上传是这样做的:怎么改呢?


                OssClient ossClient = new OssClient(endpoint, accessId, accessKey);                ObjectMetadata meta = new ObjectMetadata();
                meta.ContentLength = filesize;

                PutObjectResult result = ossClient.PutObject(bucketName, key, uploadFile.InputStream, meta);

展开
收起
ttww 2014-12-15 13:56:35 15724 0
2 条回答
写回答
取消 提交回答
  • Re请问如何使用OSS的ContentMD5?
    我就是想搞明白怎么用Content-MD5判断属否正确。不知道代码怎么写

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

    回1楼ftp4oss的帖子
    我就是想搞明白怎么用Content-MD5判断属否正确。不知道代码怎么写

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

    回5楼ftp4oss的帖子
    你好,请问对哪个值MD5?是我上传的key还是这个内容Stream content?

    比如这样:
    string keymd5=md5(key)?

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

    回8楼ftp4oss的帖子
    嗯,谢谢,这个MD5方法我会。是不是对文件流进行MD5保存在一个变量,然后和上传后返回的ETag的MD5值比较是否相同?
    2014-12-15 15:41:06
    赞同 展开评论 打赏
  • 回 楼主(ttww) 的帖子
    你是想要给Content-MD5赋值吗?

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

    Content-MD5的值是在你上传到OSS后,自动生成的,然后由OSS把该值返回给用户,用于判断该次传输过程是否正确。

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

    回 4楼(ttww) 的帖子
    一、putObject直接上传
    1、本地计算你要上传文件的md5值,保存在临时变量里面;
    2、当你上传该文件到oss完成后,oss会把该文件在oss端的md5值返回给你;
    3、你比较这两个值,一致即上传成功,不一致则表示失败;

    二、大文件分块上传
    大文件分块合并后返回的那个值并不是该文件的md5值,我自己也不太明白,网上有人说是所有分块的md5的一个组合,未经验证;
    我们处理的时候是每个分块上传完成后及时比较,确保每个分块都上传成功后,这些分开的合并就是OK的,最好是在该文件建立一个UserMatadata来保存该文件的md5值,这样方便后续的下载文件的对比校验;

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

    Re:回 6楼(ttww) 的帖子
    你好,文件md5的计算方法百度一搜一大堆,实现方法也很多
    但是肯定不是你写的去计算key,一般都是计算文件流stream的

      




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

    FileStream file = new FileStream(fileName, FileMode.Open);
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] retVal = md5.ComputeHash(file);
            file.Close();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < retVal.Length; i++)
            {
                sb.Append(retVal.ToString("x2"));
            }
            return sb.ToString();
    我看你写的语法像是C#的,这段C# 我刚从网上找的,你看看这个思路
    如果是其它语言,你在百度下,太多了

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

    回 9楼(ttww) 的帖子
    是的~~~
    2014-12-15 14:47:01
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云存储之OSS实战进阶分享 立即下载
对象存储OSS 立即下载
百问百答-OSS (上) 立即下载