firebase 在Flutter中加载来自Google Cloud Bucket URL的图像

olmpazwi  于 2023-11-21  发布在  Flutter
关注(0)|答案(2)|浏览(150)

我有一个列表的产品从API响应其中有图像的产品网址。网址是这样的

https://storage.googleapis.com/bucket-1/logos/My%20Product.png

字符串
但是我无法从Google Cloud Bucket中访问此图像,因为该Bucket不是公共的。我已经配置了Firebase项目,并且Cloud Bucket也在同一个项目中。但是我无法在Firebase控制台中看到该Bucket。它只显示在Google控制台中。我们必须将此Bucket设置为公共才能访问应用程序中的图像吗?你能建议解决方案来访问这个网址而不公开这个桶吗?

ma8fv8wu

ma8fv8wu1#

我们是否必须将此存储桶设置为公共才能访问应用程序中的图像?
是的,请参阅documentation关于使对象公开。没有其他方法可以使此URL适用于任何人下载内容。
最低限度,您必须在单个对象上设置权限以使其公开,但如果您有多个对象,您也可以在整个bucket上设置权限。

hxzsmxv2

hxzsmxv22#

如果图片是为了让匿名用户在网站上阅读,那么将图片标记为公共可读可能是最有意义的。如果出于某种原因无法这样做(也许您使用的是禁止公共对象的组织策略),您还有其他几个选择。
一种选择是在每次呈现页面时为图像提供一个动态的、签名的、短暂的下载URL。这有点复杂,而且不是一个完美的解决方案,但它会导致公共用户能够看到“非公共”对象。您可以通过几种方式生成这样的URL,例如使用getSignedUrl()函数。请注意,尽管它们只存在一段可配置的时间,但这段时间还没有到期,任何拥有URL的人都可以用它下载对象。

相关问题