首頁 > 後端開發 > Golang > 當我嘗試從 Google 雲端硬碟下載公用檔案時,為什麼我的 Go 程式會下載一個空的 zip 檔案?

當我嘗試從 Google 雲端硬碟下載公用檔案時,為什麼我的 Go 程式會下載一個空的 zip 檔案?

Patricia Arquette
發布: 2024-10-30 14:16:26
原創
508 人瀏覽過

Why does my Go program download an empty zip file when I try to download a public file from Google Drive?

在Golang 中從Google Drive 下載公共檔案

嘗試從Google Drive 下載公開共享的zip 檔案時,您可能會遇到空白“file.zip”的問題。相反,會創建“.zip”。這是由於涉及 Google Drive 或 Go 的潛在錯誤所致。

問題的根源在於 Google Drive 提供的初始下載 URL 重定向到包含星號 (*) 字元的第二個 URL作為分隔符號。然而,當Go 嘗試獲取此URL 時,它將星號編碼為*,將URL 更改為:

https://doc-00-c8-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/8i67l6m6cdojptjuh883mu0qqmtptds1/1376330400000/06448503420061938118/%2A/0B2Q7X-dUtUBebElySVh1ZS1iaTQ?h=16653014193614665626&e=download
登入後複製
登入後複製

不幸的是,Google 對此編碼的URL 響應“403 Forbidden”,表明*編碼未成功解釋為星號。

要解決此問題:

  1. 取得正確的URL: 使用網頁瀏覽器或cURL 等工具存取最初提供的下載URL 並依照重新導向進行操作,直到到達包含星號的最終URL,該URL 應類似於:
https://doc-00-c8-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/8i67l6m6cdojptjuh883mu0qqmtptds1/1376330400000/06448503420061938118/*/0B2Q7X-dUtUBebElySVh1ZS1iaTQ?h=16653014193614665626&e=download
登入後複製
  1. 手動編碼星號: 使用百分比編碼對更正後的URL 中的星號(*) 字元進行手動編碼。這會產生以下 URL:
https://doc-00-c8-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/8i67l6m6cdojptjuh883mu0qqmtptds1/1376330400000/06448503420061938118/%2A/0B2Q7X-dUtUBebElySVh1ZS1iaTQ?h=16653014193614665626&e=download
登入後複製
登入後複製
  1. 使用修正的 URL: 更新您的 Go 程式碼以使用手動編碼的 URL。這應該可以讓您從 Google 雲端硬碟成功下載 zip 檔案。

以上是當我嘗試從 Google 雲端硬碟下載公用檔案時,為什麼我的 Go 程式會下載一個空的 zip 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板