签名的 url 并在执行 curl 请求时导致问题



我正在谷歌云中创建可恢复的上传签名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

最新更新