https://gitee.com/api/v5/swagger#/putV5ReposOwnerRepoContentsPath
在本文中,参数“sha”被描述为“文件被替换的sha值”,但并未说明具体是哪个文件的sha,“被替换”也意义不明,也没写清具体是哪一个SHA算法,我尝试了SHA-1,SHA-256,SHA-224,SHA-512均未成功,返回错误结果为“Blob SHA does not match”。
文档清晰到可以使人正常使用该API。
我尝试对BASE64编码后的数据进行了各种SHA算法的摘要,然后用对BASE64编码前的数据进行了各种SHA算法的摘要,均报为“Blob SHA does not match”,原因不明。
sha 为 修改前的文件 sha,可以通过获取文件内容得到,我也是试出来的
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
问题更新:git的blob需要加入一个头部才可以获得sha,否则不匹配。
头部为UTF8编码的:
blob <字节数><'\0'>
比如长度为512字节的内容,头部则为UTF8编码的:
blob 512
注意后面紧跟0字符
但是文档里尚未描述这种情况
@许兴逸 感谢反馈,请问是获取文件 sha 相关的接口
获取仓库具体路径下的内容 有这种情况吗? 我这边用 postman 暂未重现,需要提供更多信息,如仓库地址 :)
@JHuZhang 啊,我这边的做法是把文件扒下来手动获取sha来着,然后发现怎么获取都获取不对,后来查了资料发现,需要加上文件头再sha。
登录 后才可以发表评论