首页 > 解决方案 > 有没有办法将谷歌存储签名的 url 更改为不包含文件名?

问题描述

我有一个方法可以获取谷歌存储桶中 blob 的签名 url,然后将其返回给用户。理想情况下,我也可以更改显示的文件的名称。这可能吗?

一个例子是:

https://storage.googleapis.com/<bucket>/<path to file.mp4>?Expires=1580050133&GoogleAccessId=<access-id>&Signature=<signature>

我想给自己设定的部分是<path to file.mp4>

标签: google-cloud-storage

解决方案


我能想到的唯一方法是在中间有一些东西来负责“交换”这个名字。

例如,带有 http 触发器的 Google App Engine 或带有存储触发器的 Cloud Function,只要您需要它就会获取对象、重命名它,然后直接将其提供给用户,或者将其以新名称存储在另一个存储桶中。

请记住,您要临时存储在 GAE 或 Cloud Functions 中的内容需要存储在“/tmp”目录中。

然后对于重命名,如果您使用的是 GAE,您可以使用以下内容:

导入操作系统 os.system([YOUR_SHELL_COMMAND])

然而,最简单但成本更高的方法是设置一个带有存储触发器的函数,每当上传一个对象时,它都会将它的副本以所需的新名称存储在您将为用户使用的不同存储桶中。


推荐阅读