如何取得 Google Cloud Storage 中文件的下載 URL?

如何取得 Google Cloud Storage 中文件的下載 URL?

我使用以下方法建立了一項服務:

storage.Client(project='project_name',credentials=credentials)

https://googleapis.dev/python/storage/latest/client.html

我可以上傳、刪除和列出使用者 Google Cloud 儲存桶中的檔案。我看到了將文件下載到伺服器的選項,但是是否有任何選項可以獲得可下載連結?

答案1

您可以獲得可下載鏈接,替換以下字串的值:

https://storage.googleapis.com/{bucket.name}/{blob.name}

如果您需要限制發出請求的權限或時間,您可以產生簽名 URL

簽名 URL 是提供有限權限和時間來發出請求的 URL。簽名 URL 在其查詢字串中包含身份驗證訊息,允許沒有憑證的使用者對資源執行特定操作。產生簽名 URL 時,您指定一個使用者或服務帳戶,該帳戶必須具有足夠的權限才能發出簽名 URL 將發出的請求。產生簽章URL後,任何擁有該簽章URL的人都可以在指定時間內使用該簽章URL執行指定操作,例如讀取物件。

答案2

您無法使用存取權杖對 URL 進行簽名,因為存取權杖有時間限制(大約一小時)。使用私鑰檔案對 URL 進行簽署的替代方法是使用 IAM 的 SignBlob 功能。您可以透過 中提到的“gsutil” 命令 來使用它”gsutil signurl -u --”文件。請注意,使用此方法時,簽章 url 的有效期僅為 12 小時,而上述最長有效期為 7 天。文件

SignBlob 服務定期輪換其使用的私鑰。產生的簽名 URL 至少可以使用 12 小時,但如果過期時間超過 12 小時,則可能會在您設定的過期時間之前停止工作。有鑑於此,從 signBlob 產生的簽章 URL 最適合用於對資源的短期存取。

相關內容