Как скачать файл из Google Bucket Cloud? - PullRequest
0 голосов
/ 09 ноября 2018

Я только что получил доступ к корзине gs: // asdasdasdasdd-sadasdasd в облачном хранилище Google с файлами для тестового упражнения.

Они сказали, что у меня есть доступ к моей учетной записи Google.

Но как мне скачать туда файл с python? С какими учетными данными?

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

Как мне продолжить обработку?

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from io import BytesIO

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="account.json"

from google.cloud import storage

storage_client = storage.Client()
bucket = storage_client.get_bucket('asdasdasdasdd-sadasdasd')
blob = bucket.blob('streams/2017/09/09/allcountries')
path = "gs://asdasdasdasdd-sadasdasd/streams/2017/09/09/allcountries.csv"
df = pd.read_csv(path)

Я могу загрузить файл с gsutil, но мне нужно сделать то же самое с python. Так или иначе, мне нужно подтвердить свою электронную почту, потому что мне было предоставлено право загружать файл на мою электронную почту Google.

1 Ответ

0 голосов
/ 10 ноября 2018

Полагаю, вы получили роль для доступа к корзине. Если это так, вам не нужен ключ учетной записи службы (файл .json), так как этот ключ был сгенерирован вами, поэтому он предоставляет разрешения для ресурсов вашего проекта, а не чьих-либо других.

Убедитесь, что вам дали роль roles/storage.admin, так как эта - это роль, необходимая для загрузки файлов из указанного сегмента.

Другим вариантом может быть использование ключа учетной записи службы, содержащей ту же роль, но его должен предоставить владелец корзины.

Наконец, я попробовал ваш код и столкнулся с ошибкой, когда смог подключиться к корзине. Если вы столкнулись с IOError, сообщающей, что файл не существует, посмотрите на эту запись для возможного решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...