获取对Google存储文件的公开可读引用的推荐方法似乎是使用Signed URLs。
我需要根据URL检索存储引用,这样当删除我的数据库记录时,我也可以从Storage中删除它的文件。
path/file.jpeg
中存储的文件的签名网址似乎遵循以下模式:
https://storage.googleapis.com/bucket.name/path%2Ffile.jpeg?foobar
因此,我目前正在使用正则表达式在bucket.name
和?
字符之间提取文字,然后将%2F
替换为/
。我想知道:
答案 0 :(得分:1)
推荐的获取对Cloud Storage对象的公共可读引用的方法仅是通过allowing public access对其进行操作,通过这样做,您将获得storage.googleapis.com/[your-bucket]形式的URL ] / [文件路径] / [文件]。
-这可靠吗? 仅在有限的时间需要访问(读,写或删除)时,才使用签名URL,因此,对当前应用程序使用签名URL可能不是最佳方法,因为您正在使用正则表达式来获取适当的URL路径。但忽略“?”之后的所有文本,这需要对某些计算过程进行签名。
-官方库中是否有针对我的API?找不到任何东西。 不确定是否要从签名的URL中提取路径,如果是这种情况,那么答案是否定的。
-有更好的方法吗? 使用公共访问权限可能是另一种选择。如果您使用签名的URL也具有删除权限,但实际上并没有使用有限的时间功能,那么最好的方法是使用对象公共访问权限,创建具有足够权限的服务帐户(删除Cloud Storage对象),然后使用{{3 }},以便在删除数据库记录时从存储桶中删除对象。