Как удалить все файлы, начинающиеся с «foo» в Firebase Storage - PullRequest
0 голосов
/ 12 мая 2019

У меня есть длинный список файлов в Firebase Storage, который я загрузил из скрипта Python. Многие из этих файлов имеют такие имена:

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

Я знаю, что нет никакого программного способа удалить папку в хранилище (это даже не папки), но как я могу удалить все файлы, начиная с "foo_" программно, из python?

Ответы [ 2 ]

1 голос
/ 12 мая 2019

Вы можете использовать API Cloud Storage List , чтобы найти все файлы с определенным префиксом, а затем удалить их. На этой странице есть примеры кода для различных языков, включая 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)

Вам придется добавить бит кода, который удаляет файл, если вы считаете, что он должен быть удален. Документация более подробно описывает API списков.

0 голосов
/ 12 мая 2019

Firebase предоставляет оболочку для облачного хранилища, которая позволяет напрямую обращаться к файлам в хранилище с клиента и обеспечивает доступ к этим файлам. Firebase не предоставляет Python SDK для доступа к этим файлам, но, поскольку он построен на основе облачного хранилища Google, вы можете использовать GCP SDK для Python, чтобы сделать это.

Там нет API для удаления шаблона, но вы можете просто перечислить все файлы с определенным префиксом, а затем удалить их один за другим. Пример этого см. В ответе здесь: Как удалить папку GCS из Python?

...