【问题标题】:Firebase hosting with continously growing number of audio files音频文件数量不断增长的 Firebase 托管
【发布时间】:2016-12-07 07:47:42
【问题描述】:

我正在使用 firebase 3、ionic2 和 Angular2 开发移动应用程序。 我们将不断创建将提供给所有订阅用户的新音频文件,即音频文件不是用户特定的。音频文件以模块和连续的形式提供。换句话说,订阅用户只能在模块中的所有以前的文件都已收听后才能收听该模块中的下一个文件。

Firebase 托管似乎不适用于此目的,因为据我了解,每当我们添加新音频时,我们都必须上传整个网站,其中包含所有以前和新的音频文件作为内容。这将是非常乏味的,而且不是一个可行的解决方案。 我对这个假设错了吗?我没有看到任何用于托管或 ftp 访问的增量上传。

作为替代方案,我现在正在考虑使用 Firebase 存储来托管我们的音频文件。但是,在这种情况下,我不确定如何保护存储。由于我的 api 密钥必须在源代码(js 或 html 文件)中公开,在我看来,每个具有一点 js 知识的订阅用户都可以访问托管我们的音频文件的文件夹,然后下载它们。

在托管它们的情况下,我将能够散列文件名并将它们存储在数据库中,从而控制对它们的访问。 但是,使用似乎不可能的存储选项,因为人们可以下载文件夹中的所有文件,从而下载整个模块。

最好的方法是什么?

【问题讨论】:

标签: firebase firebase-storage firebase-hosting


【解决方案1】:

这完全取决于您在 Firebase 中存储这些音频文件的方式。避免以 base64 格式存储文件并利用Firebase Storage

强烈推荐使用其中之一-

  1. Firebase 存储以增量方式存储音频文件并提供 流不间断的用户。
  2. 将图像上传到 s3 并使用数组将哈希增量保存在 firebase 中-

    var messages = $FirebaseArray(ref);

    // 向列表中添加一条新记录 消息.$add({ 用户:“物理玛丽”, 文字:“你好世界” });

    // 从列表中删除一个项目 messages.$remove(someRecordKey);

    // 更改消息并保存 var item = messages.$getRecord(someRecordKey); item.user = "alanisawesome"; messages.$save(item).then(function() { // 数据已经保存到我们的数据库中 });

【讨论】:

  • 1.是的,正如我在 Op 中所说,这就是我正在考虑的。但是,我的问题是如何保护它们。 2. 我看不出 S3 中的托管图像与手头的问题有什么关系。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
相关资源
最近更新 更多