我想报告我每个用户的Firebase默认存储桶中的存储使用情况(传输,文件存储),因此我可以根据使用情况每月收取费用。
例如,某用户存储1gb的文件,则按月收取$ 0.10的费用。在计费周期的一半,用户存储了另外1gb的文件,因此半个月应支付$ 0/10 / mo ...根据使用情况计费。
这怎么办?有最佳实践吗?
答案 0 :(得分:1)
Firebase对此没有任何内置功能,据我所知,Cloud Storage也没有。但是您可能可以通过对存储进行建模以允许跟踪谁“拥有”每个文件,然后运行定期过程来确定费用来在这些产品的基础上构建它。
您需要能够将每个文件与其所有者相关联,以便可以向该所有者收费。由于您提到使用Firebase,因此您似乎希望允许直接从客户端应用程序上传文件。在这种情况下,我建议将每个用户的文件存储在他们自己的文件夹中,并使用Firebase的安全规则对其进行保护,如下所示:https://firebase.google.com/docs/rules/basics#content-owner_only_access
然后,您要在服务器上定期运行一个进程,该进程检查所有用户文件夹并确定该期间的总费用。如果每天执行一次此操作,则只需检查用户文件夹中的文件并为该天的存储收取费用。
请注意,上述方法存在(相当)一些边缘条件,例如用户在一天内存储和删除文件。您需要提出一种防止此类滥用的方案。对于此特定示例,可以通过不允许在创建文件的同一天删除文件来实现。但总的来说,您需要考虑滥用情况并针对每种情况设计保护措施。