我正在嘗試按照這些檔案使用 githubs API 從 github 下載工件:
https://docs.github.com/en/rest/actions/artifacts#download-an-artifact
我運行了檔案中給出的 curl 命令,它給了我以下 url 來下載工件(我已經用...替換了細節)
https://pipelines.actions.githubusercontent.com/serviceHosts/..../_apis/pipelines/1/runs/16/signedartifactscontent?artifactName=my-artifact&urlExpires=....&urlSigningMethod=HMACV2&urlSignature=....
我可以通過將 URL 放入我的瀏覽器來下載工件(它會在訪問 URL 時自動下載)但是我嘗試使用 wget 通過控制臺下載它并收到此錯誤:
wget https://pipelines.actions.githubusercontent.com/... # the command I ran
HTTP request sent, awaiting response... 400 Bad Request # the error I got
如何將 zip 檔案下載到控制臺?我應該使用 wget 以外的東西嗎?
我想澄清一下,即使沒有登錄到 github(或在私人瀏覽中),也可以在瀏覽器中查看此鏈接。此外,在鏈接在 1 分鐘后過期之前,我可以根據需要多次下載鏈接中的 zip 檔案。我的倉庫也是私有的,這對我的作業來說是必要的。在執行檔案中描述的 curl 命令時,我需要使用訪問令牌,但是通過瀏覽器訪問時,回傳給我的鏈接不需要任何身份驗證。
uj5u.com熱心網友回復:
api 檔案在這里似乎有點模棱兩可。重定向可能只能訪問一次,在這種情況下,您應該嘗試生成重定向并首先使用 wget 決議它。然后,您可以使用該unzip命令解壓縮檔案。
如果不是這種情況,我相信 api 檔案中的這個宣告是關鍵:
對存盤庫具有讀取權限的任何人都可以使用此端點。如果存盤庫是私有的,您必須使用具有 repo 范圍的訪問令牌。GitHub 應用程式必須具有操作:讀取權限才能使用此端點。
我的猜測是您的存盤庫是私有的,并且您在瀏覽器上登錄到 Github,這允許您進行身份驗證,因此您可以從重定向鏈接下載。我建議嘗試從隱身模式進行測驗。
將存盤庫遷移到公共將允許您繞過此問題。或者,您可以像這樣將身份驗證令牌作為標頭傳遞給 wget,以便通過服務器進行身份驗證以提取檔案。
header='--header=Authorization: token <TOKEN>'
wget "$header" https://pipelines.actions.githubusercontent.com/... -O output_file
uj5u.com熱心網友回復:
問題是我沒有在我的網址周圍加上引號。我需要這樣做:
wget "https://pipelines.actions.githubusercontent.com/serviceHosts/..../_apis/pipelines/1/runs/16/signedartifactscontent?artifactName=my-artifact&urlExpires=....&urlSigningMethod=HMACV2&urlSignature=...."
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/497141.html
