【问题标题】:How to delete all files starting with "foo" in Firebase Storage如何在 Firebase 存储中删除所有以“foo”开头的文件
【发布时间】:2019-05-12 09:48:19
【问题描述】:

我在 Firebase 存储中有一长串文件,这些文件是从 python 脚本上传的。 其中许多文件都有这样的名称:

foo_8346gr.msb
foo_8333ys.msb
foo_134as.mbb
...

我知道没有编程方法可以删除 Storage 中的文件夹(它们甚至不是文件夹),但是我如何才能以编程方式从 python 中删除所有以“foo_”开头的文件?

【问题讨论】:

    标签: firebase google-cloud-storage firebase-storage


    【解决方案1】:

    您可以使用Cloud Storage List API 查找所有带有特定前缀的文件,然后将其删除。该页面包含多种语言的代码示例,包括 Python。以下是列出带有前缀的文件的方法:

    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    
    blobs = bucket.list_blobs(prefix=prefix, delimiter=delimiter)
    
    print('Blobs:')
    for blob in blobs:
        print(blob.name)
    
    if delimiter:
        print('Prefixes:')
        for prefix in blobs.prefixes:
            print(prefix)
    

    如果您认为应该删除文件,则必须添加删除文件的代码。该文档详细介绍了 List API。

    【讨论】:

      【解决方案2】:

      Firebase 为 Cloud Storage 提供了一个包装器,让您可以直接从客户端访问存储中的文件,并保护对这些文件的访问。 Firebase 不提供用于访问这些文件的 Python SDK,但由于它是围绕 Google Cloud Storage 构建的,因此您可以使用 GCP SDK for Python 来执行此操作。

      那里没有API可以进行通配符删除,但是您可以简单地列出所有带有特定前缀的文件,然后将它们一个一个删除。有关此示例,请参阅此处的答案:How to delete GCS folder from Python?

      【讨论】:

      • 有一个API可以根据前缀列出文件,您可以使用它来查找要删除的文件。
      • @DougStevenson 在我链接的答案中有一个例子。我主要想在此处提供一些特定于 Firebase 的上下文,否则我会将其标记为与我链接的内容重复。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 2012-01-02
      • 2015-02-04
      • 2017-05-24
      • 2022-12-09
      • 2021-11-10
      相关资源
      最近更新 更多