【问题标题】:Optimal way to generate download urls生成下载网址的最佳方式
【发布时间】:2020-11-03 02:39:36
【问题描述】:

我正在使用 react-native 创建一个间隔重复的抽认卡应用程序。每个抽认卡都包含一个音频文件,我将其存储在 firebase 存储中。我在 Firebase 存储中存储了大约 10000 个音频文件,但它们都有相似的命名结构(即 flashcard1.mp3、flashcard2.mp3、...)。每次用户登录应用程序时,他们将有大约 50 张卡片要查看和 20 张新卡片要查看。目前,我正在 for 循环中收集 70 个抽认卡中每一个的下载 URL,代码如下:

const audiourl = await storage()
            .ref('path/flashcard'+cardIndex+'.mp3')
            .getDownloadURL();
          console.log(audiourl);

必须为每个下载 URL 向 Google 的服务器发送请求并不是最佳选择。一种选择似乎是将每个下载 URL 存储在 firebase 数据库中,并在应用加载时调用它。有没有一种有效的方法来获取每个文件的下载 URL,而无需自己在前端循环整个内容?

另外,从https://storage.cloud.google.com/firebaseappspot/path/flashcard1.mp3下载可以吗?音频数据不包含私人信息。您对如何存储/获取音频 URL 有任何其他建议吗?谢谢。

【问题讨论】:

    标签: firebase-storage


    【解决方案1】:

    有没有一种有效的方法来获取每个文件的下载 URL,而无需自己在前端循环遍历整个内容?

    没有什么比你现在做的更有效了。获取下载 URL 需要像现在一样使用 getDownloadURL,如果您希望它们拥有可以撤销的令牌。该下载 URL 的主要特点是它们具有不可猜测的令牌(因此它们对拥有该 URL 的任何人都是私有的),并且该令牌可以在以后随时撤销。从客户端生成此 URL 的唯一方法是使用 getDownloadURL。

    另外,从https://storage.cloud.google.com/firebaseappspot/path/flashcard1.mp3下载可以吗?

    这完全取决于您和您的安全要求。如果你想要objects to be public and accessible,那就这样吧。

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 2010-09-14
      • 2010-10-18
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 2010-12-17
      • 2019-03-05
      • 2010-10-04
      相关资源
      最近更新 更多