OBS的几种数据一致性校验方法

举报
一道黑影飘过~ 发表于 2019/06/02 22:14:24 2019/06/02
【摘要】 把文件保存到云端,大家都比较关心数据一致性的问题,“上传完成后文件是否跟本地是一致的?”,“在云端长期保存,文件会不会出现损坏?”等等,今天给大家分享下OBS保障数据一致性的一些机制方法,打消咱们地一些疑虑。首先上传文件到OBS后,OBS会自动为对象生成Etag值,并保存在对象元数据中,Etag是对象的base64编码的128位MD5摘要,可以通过该值识别对象内容是否有变化,但Etag值不一...

把文件保存到云端,大家都比较关心数据一致性的问题,“上传完成后文件是否跟本地是一致的?”,“在云端长期保存,文件会不会出现损坏?”等等,今天给大家分享下OBS保障数据一致性的一些机制方法,打消咱们地一些疑虑。

首先上传文件到OBS后,OBS会自动为对象生成Etag值,并保存在对象元数据中,Etag对象的base64编码的128位MD5摘要,可以通过该值识别对象内容是否有变化,但Etag值不一定等同于MD5值,比如通过多段上传的方式上传文件,文件的Etag值是通过各个段的MD5值计算得出的,这种情况下Etag值不等同于MD5值,但是OBS可以通过Etag值判断在服务端数据有没有出现异常改变。

那我们要校验MD5值怎么办呢?

第一种方法,我们在上传对象时,可以在请求消息头中加入Content-MD5参数,在这种情况下,OBS收到上传的对象后,会对对象进行MD5校验,如果不一致则返回出错信息。

image.png

第二种方法,使用OBSBrowser的MD5检验功能,在工具的系统配置中启用本功能,开启功能后,所有新上传的文件,都会进行MD5校验,校验通过后,文件才会是上传成功的状态,否则需要重新传输。由于MD5校验需要有文件初始MD5值的记录,所以下载的校验,只会校验对象元数据中保存有MD5信息的文件,也就是启用MD5校验功能后上传的文件。注意开启MD5校验后,会影响部分上传下载的性能体验。

image.png

https://support.huaweicloud.com/clientogw-obs/obs_03_0029.html

第三种方法,使用OBSUtil工具的MD5校验功能,OBSUtil在上传和下载的命令中,可以使用附加参数vmd5。上传时使用该参数后,就会对本地和服务端的文件进行MD5校验,MD5值校验通过后,会将该值设置为对象元数据x-obs-md5chksum,对象下载时,使用该参数,则会对x-obs-md5chksum和下载后的MD5值进行校验。

https://support.huaweicloud.com/utiltg-obs/obs_11_0013.html

https://support.huaweicloud.com/utiltg-obs/obs_11_0018.html

 

通过以上的方法,可以对上传和下载文件进行数据一致性校验,校验通过后,就可以愉快的保存和使用数据,再也不用担心文件损坏了。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。