我在谷歌云平臺中設定了一個 API 端點,配置為與谷歌云功能和 API 網關一起使用,并受 API 密鑰的保護。我正在嘗試對此進行測驗并將其合并到我的應用程式中,但是我遇到了一個非常奇怪的問題,我不確定發生了什么。
在添加 API 密鑰的安全性之前,我可以簡單地運行:
curl https://myendpoint.com/endpoint
并收到適當的回應。如果我https://myendpoint.com/endpoint
輸入瀏覽器 URL 欄,我也會得到相同的回應。
但是,自從我設定 API 密鑰以來,我遇到了一個奇怪的問題,即當我按照 Google 檔案提供的使用 API 密鑰的語法運行 curl 時:
curl https://myendpoint.com/endpoint?key=my_api_key
我的終端回傳以下錯誤:
zsh: no matches found: https://myendpoint.com/endpoint?key=my_api_key
現在,如果我在沒有 api 密鑰的情況下運行 curl 命令,我會得到正確的回應,即我未經授權,因為我沒有密鑰。
但最奇怪的是,如果我將包含 API 密鑰的 URL 復制并粘貼到瀏覽器中,我會得到預期的結果,而不是這個“找不到匹配項”錯誤!
所以我想這是有什么關系zsh
還是什么?還是專門卷曲?我應該以不同的方式傳遞 api 密鑰嗎?也許在標題中?
請幫忙!謝謝
uj5u.com熱心網友回復:
這與 GCP 無關。zsh 正在服用 ? 成為通配符(glob)匹配,并且沒有找到任何匹配項。
您可以簡單地將整個 URL 放在引號中以停止這種通配行為:
curl "https://myendpoint.com/endpoint?key=my_api_key"
或者,如果您不想要它,您可以在 shell 中禁用 globbing。
也可以看看:
- https://superuser.com/questions/1605802/completely-disable-and-globbing-in-zsh
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/494864.html
標籤:卷曲 谷歌云平台 谷歌云功能 zsh 谷歌云 API 网关