我正在寻找unix命令来计算与IBM Cloud Object Storage API一起用于删除多个对象的md5-content头。我尝试{{ totals() }}
,但API响应是 -
您指定的Content-MD5无效。
Curl CMD:
echo “request body….” | md5 | base64
错误回复:
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...'
感谢关于此的任何指示。
答案 0 :(得分:1)
$t1=explode(':',$expected);
$t2=explode(':',$actual);
$d=60*($t1[0]-$t2[0])+t1[1]-t2[1];
$result=str_pad(floor($d/60),2,'0',STR_PAD_LEFT).':'.str_pad($d%60,2,'0',STR_PAD_LEFT);
内置有点弱,如果可能,使用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
这就是我们所期望的。