我正在谷歌云中创建可恢复的上传签名URL,并将链接传递到外部API以执行某些过程。在检查API的回调时,我可以看到url实际上被拆分为不同的参数,因为&出现在谷歌签名的url中。
callback": "https://storage.googleapis.com/bucket/file-name?x-goog-"x-goog-date": "20220303T233221Z",
"x-goog-expires": "3600",
"callback_method": "put",
"x-goog-algorithm": "GOOG4-RSA-SHA256",
"x-goog-credential": "****",
"x-goog-signedheaders": "host"
签名的url看起来像
https://storage.googleapis.com/bucket/file-name?x-goog-signature=4398348934893498fjksdfjksdjk&x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=bucket40project.iam.gserviceaccount.com%2F2003%2Fus-west1%2Fstorage%2Fgoog4_request&x-goog-date=202201Z&x-goog-expires=3600&x-goog-signedheaders=host
并且对API的curl请求看起来像
curl --request POST
-url 'website.com?callback=<the above url>"
--header
--data
如有任何意见,我们将不胜感激。我试着在&
之前包含一个,或者将其括在引号中,但似乎什么都不起作用。
基于这个答案。
你需要对以前的url 进行url编码
curl --request POST
--data-urlencode "callback=<the above url>"
website.com