Как мне прочитать файлы в подкаталоге / префиксе из облачного хранилища Google? - PullRequest
2 голосов
/ 30 марта 2020

Я переместил файлы и папки в облачное хранилище Google (GCS). Мне трудно понять префиксы и разделители в документации GCS.

Что я хочу сделать, это по существу заменить путь / местоположение локально сохраненных файлов на местоположение GCS. Например,

В настоящее время кодируется для локального пути:

Variable = "C:\\Users\\admin\\Documents\\Folder1\\doc3.csv"

Мне нужно, чтобы он был записан для поиска файла в GCS, как показано ниже:

Variable = "https://storage.cloud.google.com/MYBUCKETNAME/Folder1/doc3.csv?supportedpurview=project"

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

from google.cloud import storage
import os
client = storage.Client()
bucket = client.bucket('mybucketname')
blobs = bucket.list_blobs(prefix='Folder1')
for blob in blobs:
    print(blob.name)

Таким образом, вывод этого дает следующие файлы в этой спецификации c папка:

doc1.csv
doc2.csv
doc3.csv

Для моей переменной, что я пишу в качестве моего пути к файлу в doc3.csv. Это то, с чем я борюсь.

1 Ответ

1 голос
/ 30 марта 2020

Нельзя ссылаться на BLOB-объект в облачном хранилище по его имени, как будто это локальный файл. Сначала вам нужно будет перенести файл из облачного хранилища в локальную файловую систему:

destination_file_name = ...
blob.download_to_filename(destination_file_name)

Затем вы можете прочитать файл из того места, где вы сохранили его локально:

with open(destination_file_name) as f:
   contents = f.read()

... или иным образом используйте его как любой другой локальный файл в вашей файловой системе.

Подробнее см. https://cloud.google.com/storage/docs/downloading-objects.

...