Google Cloud Storage获取下载链接

And*_*uiz 2 google-cloud-storage

我正在使用Asp.Net Core 2网络api处理由Google Cloud Storage托管的文件。那里托管的文件不是公共的,所以我不能使用MediaLink对象的属性。我尝试使用下载端点,MemoryStream但是当有很多用户一次下载大文件时,我遇到了内存问题。

我的问题是:有没有一种方法可以为文件或类似内容创建某些链接,一次下载链接?

我还尝试实现此链接中描述的内容,但需要将不记名令牌提供给用户。我做不到

有小费吗?

Bra*_*ugh 5

是。Google云存储提供了一种称为“签名URL”的功能,即您所描述的:仅在短时间内下载单个文件的URL。这个想法是您制作一个下载URL,然后使用服务帐户的私钥对URL进行“签名”。拥有该最终URL的任何人都可以将其用作该服务帐户,以下载该对象。

看看:https : //cloud.google.com/storage/docs/access-control/#Signed-URLs

编写代码来生成签名的URL有点棘手,但是客户端库提供了几种语言的帮助程序方法来帮助您。您还可以使用gsutil命令生成一个:gsutil signurl -d 10m privatekey.p12 gs://bucket/foo

在他们的GitHub项目上有一个代码示例以编程方式生成他的签名URL:签名URL