OBS的几种数据一致性校验方法
把文件保存到云端,大家都比较关心数据一致性的问题,“上传完成后文件是否跟本地是一致的?”,“在云端长期保存,文件会不会出现损坏?”等等,今天给大家分享下OBS保障数据一致性的一些机制方法,打消咱们地一些疑虑。
首先上传文件到OBS后,OBS会自动为对象生成Etag值,并保存在对象元数据中,Etag是对象的base64编码的128位MD5摘要,可以通过该值识别对象内容是否有变化,但Etag值不一定等同于MD5值,比如通过多段上传的方式上传文件,文件的Etag值是通过各个段的MD5值计算得出的,这种情况下Etag值不等同于MD5值,但是OBS可以通过Etag值判断在服务端数据有没有出现异常改变。
那我们要校验MD5值怎么办呢?
第一种方法,我们在上传对象时,可以在请求消息头中加入Content-MD5参数,在这种情况下,OBS收到上传的对象后,会对对象进行MD5校验,如果不一致则返回出错信息。
第二种方法,使用OBSBrowser的MD5检验功能,在工具的系统配置中启用本功能,开启功能后,所有新上传的文件,都会进行MD5校验,校验通过后,文件才会是上传成功的状态,否则需要重新传输。由于MD5校验需要有文件初始MD5值的记录,所以下载的校验,只会校验对象元数据中保存有MD5信息的文件,也就是启用MD5校验功能后上传的文件。注意开启MD5校验后,会影响部分上传下载的性能体验。
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
通过以上的方法,可以对上传和下载文件进行数据一致性校验,校验通过后,就可以愉快的保存和使用数据,再也不用担心文件损坏了。
- 点赞
- 收藏
- 关注作者
评论(0)