从Google Storage签名的网址获取存储路径

时间:2018-05-28 11:23:42

标签: url google-cloud-platform google-cloud-storage

获取对Google存储文件的公开可读引用的推荐方法似乎是使用Signed URLs

我需要根据URL检索存储引用,这样当删除我的数据库记录时,我也可以从Storage中删除它的文件。

path/file.jpeg中存储的文件的签名网址似乎遵循以下模式:

https://storage.googleapis.com/bucket.name/path%2Ffile.jpeg?foobar

因此,我目前正在使用正则表达式在bucket.name?字符之间提取文字,然后将%2F替换为/。我想知道:

  • 这可靠吗?
  • 官方图书馆中是否有任何API可以帮我这么做?找不到任何。
  • 有没有更好的方法?就像将存储路径存储在数据库记录中一样,以及签名的URL(对我来说似乎有些过分)。

1 个答案:

答案 0 :(得分:1)

推荐的获取对Cloud Storage对象的公共可读引用的方法仅是通过allowing public access对其进行操作,通过这样做,您将获得storage.googleapis.com/[your-bucket]形式的URL ] / [文件路径] / [文件]。

-这可靠吗? 仅在有限的时间需要访问(读,写或删除)时,才使用签名URL,因此,对当前应用程序使用签名URL可能不是最佳方法,因为您正在使用正则表达式来获取适当的URL路径。但忽略“?”之后的所有文本,这需要对某些计算过程进行签名。

-官方库中是否有针对我的API?找不到任何东西。 不确定是否要从签名的URL中提取路径,如果是这种情况,那么答案是否定的。

-有更好的方法吗? 使用公共访问权限可能是另一种选择。如果您使用签名的URL也具有删除权限,但实际上并没有使用有限的时间功能,那么最好的方法是使用对象公共访问权限,创建具有足够权限的服务帐户(删除Cloud Storage对象),然后使用{{3 }},以便在删除数据库记录时从存储桶中删除对象。