全部建议
>
建议详情
- 预审中
- 2 预审不通过
【产品缺陷】obs md5上传的check问题反馈 预审不通过 编辑 删除
- 对象存储服务 OBS
- 存储
问题描述:
obsutil sync 命令我在使用中,遇到情况如下。
第一次上传,我没有添加-vmd5参数,第二次我再同步,但是相同文件仅仅是跳过了。MD5根本没法强制加上去!!!!!
弄得我本地都不敢删除本地这些文件了(除非现在全部重新上传,但时间已经不允许)
希望第二次obsutil sync -vmd5 同步后能加上MD5在云,以便check数据,。
我本地带宽有限,传输过来要一个星期,现在这个问题卡得我很难受,由于存储问题需要删本地文件了,但我没法确认云数据是否和本地完全一致 ~~~
建议方案:
把BUG改进就好,计算md5的资源可以用我自己的机器,但是sync增量同步,MD5属性给我加上去啊!!!!!

wan230114
发布于 2021-07-17 12:36:12
2021-07-17
45 2
0%
0%
取消
发表
0/1000
+ 插入图片0/4
仅支持JPG、JPEG、PNG、GIF,数量不超过4张且每张大小不超过2MB
0%
0%
删除建议
全部评论(2)
评论(2)
非常抱歉给您带来这么多不便,关于您提交的建议进行了评估,您反馈的问题,需复现问题场景,建议您可通过提交工单解决,会有专业工程师对接,紧急情况下可以拨打4000-955-988求助客服。
若有关于华为云产品的功能、用户体验、产品缺陷等建议,可通过云声平台提出,我们会尽快确认后并给您回复。再次感谢您的支持与关注!
我后来参考这篇官方文档提供的SDK(API )文章解决了一半的难题:https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0500.html
原来obs的云数据对象计算的md5,存储在数据对象的元数据里面,键值为 “md5chksum: xxx-md5-value”,我若想修复云数据对象没有MD5问题的话,可以直接借助API修改数据对象的元数据:
核心语句如下:
from obs import ObsClient
obsClient = ObsClient(
access_key_id='ak...',
secret_access_key='sk...',
server='https://xx.node.xx
bucketname = 'xxx'
L_correct = []
for PATH, MD5_local in L_local_md5:
Metadata = obsClient.getObjectMetadata(bucketname, PATH)
MD5_oss = dict(Metadata["header"]).get('md5chksum', 'null')
MD5_correct = dict(Metadata["header"]).get('md5correct', 'null')
if MD5_oss != MD5_local:
resp = obsClient.setObjectMetadata(
bucketname, PATH,
metadata={'md5chksum': MD5_local,
'md5correct': f'{MD5_oss} -- {MD5_local}'})
L_correct.append([PATH, MD5_local, MD5_oss, MD5_correct])
这个方法,能解决使用本地数据的MD5贴到云上,但云数据对象的MD5我又该如何确认是否真的是这个MD5呢??
故此,借助API,我解决了一半的问题。