如何限制从Firebase存储下载的次数?

时间:2019-01-03 21:09:28

标签: firebase firebase-storage firebase-security-rules

据我所知,Firebase存储中没有安全规则可以限制每个用户的下载数量。

我可以通过一个简单的技巧来限制写文件的文件大小或文件数:

  match /public/{userId}/{imageId} {
  allow write: if request.resource.size < 5 * 1024 * 1024 && 
  imageId.matches("[1-5]\.txt");
}

根据Google Quotas & Limits

  

每个对象的更新限制为每秒一次,因此对单个对象的快速写入不会扩展。

这很好,但一旦恶意用户知道下载链接,如何防止过多的读取?根据Google Quotas & Limits,这对于安全性尤其重要:

  

读取对象没有限制。存储桶最初支持每秒大约5000次读取,然后根据需要扩展。

1 个答案:

答案 0 :(得分:1)

没有配置用于限制Cloud Storage中存储的文件的下载量。如果用户完全有权读取任何数据,那么他们可以根据需要读取任意数量的数据。没有与所消耗的每用户数据量或文件访问次数有关的计费方式。没有任何安全规则可让您以这种方式限制访问。没有Cloud Functions触发器可以让您自己进行核算。

有关上传限制的文档与您要执行的操作无关。可伸缩性的限制仅与基础系统的性能有关,而与最终用户的权限无关。

如果要限制最终用户可以执行的操作,则需要通过构建的一些中间件组件来路由他们,这些组件可以跟踪他们如何使用提供的API下载文件,并根据他们的使用来限制他们可以做什么先前的行为。显然,实现起来并不容易,但是有可能。

相关问题