You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Storage Client如何获取Google Cloud Storage文件的下载URL?

获取Google Cloud Storage对象的可下载链接

当然可以!根据你的存储对象是公开还是私有,有两种常用的方式来获取可下载链接,刚好可以用你已经创建的storage.Client来实现:

1. 公开对象的直接访问链接

如果你的存储桶或对象设置了公开读权限,可以直接构造固定的HTTP下载链接,格式如下:
https://storage.googleapis.com/[存储桶名称]/[对象路径]

举个实际例子:假设你的存储桶叫my-user-files,要分享的对象路径是photos/vacation.jpg,那直接的下载链接就是:
https://storage.googleapis.com/my-user-files/photos/vacation.jpg

你也可以通过代码直接获取这个公开URL,不用手动拼接:

# 假设你已经初始化了storage_client
bucket = storage_client.bucket("my-user-files")
blob = bucket.blob("photos/vacation.jpg")
public_download_url = blob.public_url

⚠️ 注意:只有当对象或存储桶的IAM权限允许allUsers拥有storage.objects.get权限时,这个链接才能被任何人访问。

2. 私有对象的临时签名URL

如果你的对象是私有状态(GCS默认就是私有),可以生成签名URL——这是一个有有效期的临时链接,任何人拿到链接都能下载,不需要额外身份验证。

用Python客户端生成签名URL的代码示例:

from datetime import timedelta

# 假设你已经初始化了storage_client
bucket = storage_client.bucket("my-user-files")
blob = bucket.blob("docs/confidential-report.pdf")

# 生成有效期为1小时的签名URL
signed_download_url = blob.generate_signed_url(
    version="v4",
    expiration=timedelta(hours=1),  # 可以调整有效期,比如timedelta(days=3)
    method="GET",
)

print("临时下载链接:", signed_download_url)

这个链接会在你设置的有效期过后自动失效,非常适合分享敏感内容的临时访问权限。

额外提示

  • 生成签名URL需要你的服务账号拥有对应对象的storage.objects.get权限(默认情况下,创建storage.Client的凭据如果是存储桶的所有者,就具备这个权限)。
  • 如果是在GCP内部服务(比如Cloud Functions、Compute Engine)中运行代码,使用默认服务账号就能直接生成签名URL,不需要额外配置凭据。

内容的提问来源于stack exchange,提问作者subin_john_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 13:47:40