Firebase:如何在上传文件之前检查文件

doe*_*doe 1 android firebase

我使用firebase存储进行云存储

上传文件时,如果文件已存在于存储参考中,我不想上传.我只需要跳过上传并继续下一个文件.

目前我像这样上传

    String pathString = "/Files/" + filename;                        
    StorageReference filepathReference = rootreference.child(pathString);
    StorageReference uploadRef = filepathReference.child(pathString);
    UploadTask uploadTask = uploadRef.putFile(file);
Run Code Online (Sandbox Code Playgroud)

其中,显然再次上传并替换文件是否已存在.我只想通过检查存储桶中已存在的文件名来跳过不需要的上传.那可能吗?

Dim*_*ira 5

尝试获取元数据.如果失败,则文件不存在

uploadRef.getMetadata()
    .addOnSuccessListener({ /*File exists*/ })
    .addOnFailureListener({
        //File do not exist
        UploadTask uploadTask = uploadRef.putFile(file);
    })
Run Code Online (Sandbox Code Playgroud)

如果要完全禁止文件覆盖,而不仅仅是检查文件是否存在,则可以指定存储的安全规则

allow write: if resource.metadata == null; // 
Run Code Online (Sandbox Code Playgroud)

但是我从未测试过它,所以我不确定它,也许它resource == null也会起作用


归档时间:

查看次数:

1287 次

最近记录:

7 年,7 月 前