当前位置: 首页 > 知识库问答 >
问题:

Firebase存储-图像服务的URL

赵经国
2023-03-14

我正在尝试让Firebase存储与Imgix或cloudinary这样的图像服务一起工作。然而,Firebase提供的下载URL似乎不能与这些服务一起工作。

例如:Cloudinary说您可以获取如下所示的图像:

http://res.cloudinary.com/demo/image/fetch/http://upload.wikimedia.org/wikipedia/commons/0/0C/Scarlett_Johansson_C%C3%a9sars_2014.jpg

不过,我的下载URL看起来更像这样:

https://firebasestorage.googleapis.com/v0/b/project-503247351211329470.appspot.com/changedsoitdoesnotwork/o/o8hv4nkoyggccyolovlh7cqw48y2%2fimages%2f1.jpeg?alt=介质&标记=28eabf76-f85b-45aa-das3-fd945729d7c2

我在上面的url中更改了一些字符,所以它不会起作用,因为我不想要来自StackOverflow的大量请求。:)

有什么我可以做的不同吗?我可以直接向存储桶提出请求吗?

共有1个答案

罗韬
2023-03-14

您完全可以使用像Imgix或Cloudinary这样的服务和Firebase存储URL--这里的问题(在99%的情况下都是这样)是,当在提取中使用URL时,需要进行百分之百的转义。

如果我们有类似以下URL:https://firebasestorage.googleapis.com/v0/b/fir-cloudvisiontest.appspot.com/o/images%2fimage.jpg?alt=media&token=token

需要将其转义为以下内容:https%3a%2f%2fFireBaseStorage.googleapis.com%2fv0%2fb%2ffir-cloudvisiontest.appspot.com%2fo%2fimages%252fimage.jpg%3falt%3dmedia%26token%3d61d35caf-b209-485f-8248-a3c2aa717468(是的,它实际上重新转义转义的任何百分比编码)。

这将导致Cloudinary URL如下所示:http://res.Cloudinary.com/ /image/fetch/https%3a%2f%2firebaseStorage.googleapis.com%2fv0%2fb%2ffir-cloudvisiontest.appspot.com%2fo%2fimages%252fimage.jpg%3falt%3dmedia%26token%3dtoken

给定服务对URL编码的容忍度不同,您的里程可能会有所不同,因此我建议使用http://meyerweb.com/eric/tools/dencoder/这样的工具测试URL,以验证您的映像是否工作。

 类似资料:
  • 我正在开发一款用于拍照的Android应用程序。首先,用户拍摄个人资料图片。此图像的Url保存在Firebase实时数据库中。用于检索以下下载URL的示例代码 这个url被保存在数据库中的多个地方,我需要在那里加载用户的个人资料图片——他的每个帖子的条目,他给应用程序上其他人的消息,等等。 现在,如果他以后更改个人资料图片,我有以下两个选项 更新每个数据库条目-非常繁琐、暴力和资源密集 那么,有没

  • 在我的应用中,我提示用户捕获图像。用户相机活动在按钮单击时开始,用户可以选择使用相机捕获图像。 此图像保存在用户手机上。然后将图像上传到firebase Storage,一切正常。来自一位使用三星Note 8的用户的反馈是,当图像以肖像模式拍摄时,他稍后会在应用程序中以风景模式显示。 我查看了firebase存储,发现图像以横向模式保存在存储中,即使用户以纵向模式捕获图像。 我想我必须将元数据传递

  • 问题内容: 我想上传一个文件并将其存储在数据库中。我创建了一个LargeBinary列。 我读取了上传的文件并将其存储在数据库中。 这是将图像作为二进制文件存储在数据库中的正确方法吗?如何将二进制数据再次转换为图像以显示它? 问题答案: 如果您绝对需要将映像存储在数据库中,那么可以,这是正确的。通常,文件存储在文件系统中,路径存储在数据库中。这是更好的解决方案,因为与动态发送大量数据的应用程序不同

  • 问题内容: 我正在从servlet提供图像。响应内容类型为image / jpeg。我发现从我的servlet请求的图像没有被缓存。如何使它们像文件图像请求通常那样被缓存?我尝试设置Cache- Control:public,但无济于事。 问题答案: 好的..看起来默认头字段应该启用缓存。我在另一个论坛上找到了解决方案。显然,您需要在响应中显式设置content- length。不知道为什么。我认

  • 我正在寻找一种安全的方式来存储用户的敏感媒体像驾照图片。据我所知,没有办法从Firebase存储规则访问Firebase实时数据库,以查看用户是否被授权查看媒体。如果我错了就纠正我。文档中有一些允许某些用户访问介质的方法,但这对我来说并不可行,因为可能有多个用户将访问介质,并且他们的权限状态可能在将来更改。 null

  • 我要上传一张图片到firebase的存储器。我用的不是网页版存储(不应该用)。我正在使用firebase admin。没问题,我毫无困难地上传了文件,并在变量“file”中得到结果。 如果我访问firebase存储控制台,图像就在那里。好吧 现在,我有一些问题。 > < li> 为什么对< code>upload ()方法的响应有这么多信息和这么多对象?回顾这个巨大的对象,我在元数据中发现了一个名