如何获取 Google Cloud Storage 中文件的下载 URL?

如何获取 Google Cloud Storage 中文件的下载 URL?

我已经使用以下方法创建了一个服务:

存储.客户端(项目='project_name',凭证=凭证)

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 最适合用于短期访问资源。

相关内容