Чтение файлов из облачного хранилища, имеющих определенный префикс, но случайный постфикс - PullRequest
0 голосов
/ 23 мая 2019

Я использую следующий код для чтения содержимого файла в облачном хранилище Google из облачных функций. Здесь определяется имя файла (имя файла). Теперь у меня есть файлы, которые будут иметь определенный префикс, но постфикс может быть любым. Пример - ABC-khasvbdjfy7i76.csv

Как читать содержимое таких файлов?

Я знаю, что в качестве префикса будет "ABC". Но постфикс может быть любым случайным.

storage_client = storage.Client()
bucket = storage_client.get_bucket('test-bucket')
blob = bucket.blob(filename)
contents = blob.download_as_string()
print("Contents : ")
print(contents)

Ответы [ 2 ]

4 голосов
/ 23 мая 2019

Вы можете использовать параметр prefix метода list_blobs для фильтрации объектов, начинающихся с вашего префикса, и итерации по объектам:

from google.cloud import storage

storage_client = storage.Client()
bucket = storage_client.get_bucket('test-bucket')

blobs = bucket.list_blobs(prefix="ABC")

for blob in blobs:
    contents = blob.download_as_string()
    print("Contents of %s:" % blob.name)
    print(contents)
0 голосов
/ 23 мая 2019

Вам необходимо знать полный путь к файлу, чтобы иметь возможность его прочитать.А поскольку клиент не может угадать случайный суффикс, вам сначала нужно перечислить все файлы с неслучайным префиксом.

Существует операция list, в которую можно передать префикс,как показано здесь: Google Cloud Storage + Python: Есть ли способ перечислить obj в определенной папке в GCS?

...