当前位置: 首页 > 知识库问答 >
问题:

限制firebase存储路径中的文件数量

麹承
2023-03-14

我想限制用户可以上传到firebase存储路径的文件数量。以下是我的firebase存储规则:

   service firebase.storage {
  match /b/jobsdbn.appspot.com/o {
    match /images/Business/{userId}/{imageId} {
       allow read
       allow write: if request.auth.uid == userId && (request.resource == null || ( (list(/images/Business/$(username)).size() <= 5) && imageId.size() < 50 && request.resource.size < 10 * 1024 * 1024 && request.resource.contentType.matches('image/.*')))

    }
  }
}

我添加了一个列表(/images/Business/$(username)).size()

但我总是得到403,不确定“用户名”是否是全局变量,但我已经使用了不同的变量,仍然不能使它工作。

共有1个答案

乔丁雨
2023-03-14

如果有人需要答案,我通过使用firebase cloud函数找到了解决方案:

exports.getNumOfFile = functions.storage.object().onChange(event => {
    const object = event.data; // The Storage object.
    const fileBucket = object.bucket; // The Storage bucket that contains the file.
    const bucket = gcs.bucket(fileBucket);
    bucket.getFiles({
        prefix: "[path]", //Path like what you use to get reference of your files in storage 
    }, (error, files) => {
        console.log(files.length);
    });
});

您可以在此处找到更多选项:

https://Google cloud platform . github . io/Google-cloud-node/#/docs/storage/1 . 1 . 0/storage/bucket?方法=获取文件

 类似资料:
  • 我正在使用AngularFire2成功将图像上传到Firebase Storage。 我有以下上传代码。 我想解决几个问题。 如何设置文件大小限制?这意味着我希望用户能够上传小于10mb的文件。 如何限制文件编号?这意味着我希望一个用户只能上传3个文件。 如果没有firebase服务器规模的解决方案,请推荐一些客户端规模的解决方案。 谢谢

  • 什么是 Firebase 存储上传文件大小限制?我在网站上找不到该信息。

  • 我对firebase存储是新手,想知道什么是最好的做法。我想上传图像到firebase云存储,并返回了一个下载url,然后我存储到FireStore。下载网址是永久的吗?其他用户将从firestore读取以获得下载图像的url。 但是当我想从CloudStorage中删除图像时,我只有下载url,而没有文件路径。所以我要删除它吗? 如果我存储的是文件路径,如何获得下载url?

  • 在使用Spring和REST API时,我遇到了一个有趣的问题,这个问题是:在Spring中,路径是否仅限于一定数量的字符? 谢谢你

  • 我了解到,每次部署firebase云功能时,firebase都会自动将一些数据保存在firebase存储中。我很想知道哪些数据被保存,如果删除是安全的,或者任何关于删除什么的建议。 我有一个小项目,200MB的云存储用于用户数据和10个云功能来完成各种任务。10月初,我做了很少的firebase部署操作,现在我看到了900MB的us.artifacts数据。请参阅下面的firebase和googl

  • 如何添加规则来限制用户可以使用的最大存储空间大小?当前的限制了用户可以上传的文件的大小,但没有限制用户正在上传的文件夹/存储桶的大小。我希望对用户可以上传的所有内容设置一个限制,例如50 MB。 更新: 为了重新定义这个问题,假设用户已经上传了5张大小为10MB的图像,总共是50MB。现在我想限制用户上传更多文件,因为已经达到了最大存储桶大小(在我的例子中为50MB)。可能有两个文件,每个20 M