如何在 unix shell 中计算 md5-content header?
How to calculate md5-content header in unix shell?
我正在寻找用于计算 md5 内容的 unix 命令 header 与 IBM Cloud Object 存储 API 一起使用,用于删除多个 objects.我试过 echo “request body….” | md5 | base64
,但是 API 响应是 - `
The Content-MD5 you specified was an invalid.
卷曲命令:
curl \
-H "Content-Type: text/plain;charset=utf-8" \
-H "Content-MD5: 75ff06f81643655397a5911ddc195ce8" \
-H "Authorization: $AuthToken" \
"https://<cos-endpoint-name>/<bucket-name>?delete" \
-d 'xml body...'
错误响应:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Error>
<Code>InvalidDigest</Code>
<Message>The Content-MD5 you specified was an invalid.</Message>
<Resource>/ghhsa-bucket-etl-dev/</Resource>
<RequestId>aed25243-22a1-477d-9ab8-b87780625a61</RequestId>
<httpStatusCode>400</httpStatusCode>
</Error>
感谢任何对此的指点。
内置的 md5
有点弱,如果可能的话,使用 openssl
进行加密会更直接一些。使用文档中的示例:
echo -n '<?xml version="1.0" encoding="UTF-8"?><Delete><Object><Key>pasture/cow-one</Key></Object><Object><Key>pasture/cow-two</Key></Object></Delete>' | openssl dgst -md5 -binary | openssl enc -base64
这 returns /Gx4aOgplRXMRI2qXXqXiQ==
这正是我们所期望的。
我正在寻找用于计算 md5 内容的 unix 命令 header 与 IBM Cloud Object 存储 API 一起使用,用于删除多个 objects.我试过 echo “request body….” | md5 | base64
,但是 API 响应是 - `
The Content-MD5 you specified was an invalid.
卷曲命令:
curl \
-H "Content-Type: text/plain;charset=utf-8" \
-H "Content-MD5: 75ff06f81643655397a5911ddc195ce8" \
-H "Authorization: $AuthToken" \
"https://<cos-endpoint-name>/<bucket-name>?delete" \
-d 'xml body...'
错误响应:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Error>
<Code>InvalidDigest</Code>
<Message>The Content-MD5 you specified was an invalid.</Message>
<Resource>/ghhsa-bucket-etl-dev/</Resource>
<RequestId>aed25243-22a1-477d-9ab8-b87780625a61</RequestId>
<httpStatusCode>400</httpStatusCode>
</Error>
感谢任何对此的指点。
内置的 md5
有点弱,如果可能的话,使用 openssl
进行加密会更直接一些。使用文档中的示例:
echo -n '<?xml version="1.0" encoding="UTF-8"?><Delete><Object><Key>pasture/cow-one</Key></Object><Object><Key>pasture/cow-two</Key></Object></Delete>' | openssl dgst -md5 -binary | openssl enc -base64
这 returns /Gx4aOgplRXMRI2qXXqXiQ==
这正是我们所期望的。