如何从 Firebase 存储下载 URL 中删除查询字符串

A I*_*fil 5 firebase firebase-security swift firebase-storage google-cloud-firestore

问题:

我需要能够从为 Firebase 存储中的图像生成的下载 URL 中删除所有链接修饰。但是,当所有链接装饰都被删除时,生成的链接当前将返回图像元数据的 JSON 文档。

语境:

流程如下:

图像从 iOS 应用上传到 Firebase。完成后,下载 URL 将在 POST 请求中发送到外部服务器。

提交图像 URL 时,URL 被发送到的服务器不接受链接修饰。

目标:

更改 Firebase 存储下载 URL,例如删除所有链接装饰,如下所示:

笔记:

问题实际上是双重的,首先需要操作链接以删除所有链接装饰。然后链接的行为需要更改,因为为了返回图像,您需要在文件扩展名后添加 ?alt=media,在本例中为 .jpg。目前,在没有链接修饰的情况下,使用具有我想要的结构的链接将返回元数据的 JSON 文档。

目前的链接结构如下:

所需的链接结构:

令牌是访问图像所必需的,具体取决于适当的安全规则,但可以通过适当的读取权限忽略。我可以根据需要调整规则,但我仍然需要能够删除 ?alt=media 并仍然返回图像。

小智 3

根据 Frank 的回答,如果您访问关联的 Google Cloud Platform 项目,在“存储”选项卡中找到该存储桶并将该存储桶公开,您将能够从此处获取具有您想要的格式的图像。也就是说,您将无法通过 Firebase 进行访问

https://firebasestorage.googleapis.com/v0/b/example.appspot.com/o/[FOLDER_NAME]%[IMAGE_NAME].jpg

但通过 Google Cloud Storage,链接如下

https://storage.googleapis.com/[bucket_name]/[path_to_image]

进入 GCP 项目控制台后,使用与 Firebase 项目中的名称相同的名称访问存储桶。他们是同一个桶。然后按照以下步骤公开该存储桶。之后,您将能够按照上面提到的方式构建链接,并且无需令牌和alt=media参数即可访问它们。如果您不想向所有人公开,您可以根据需要随意调整权限。