Загрузить папку в Google Cloud Storage с помощью Python? - PullRequest
1 голос
/ 25 июня 2019

Я нашел upload_from_file и upload_from_filename, но есть ли функция или метод для загрузки всей папки в облачное хранилище через Python?

Ответы [ 3 ]

0 голосов
/ 27 июня 2019

Облачное хранилище Google на самом деле не имеет понятия «каталоги», это просто двоичные двоичные объекты (которые могут иметь имена ключей, которые выглядят как каталоги, если вы их так называете).Таким образом, ваш текущий метод в Python является подходящим.

0 голосов
/ 03 июля 2019

это работает для меня.скопировать все содержимое из локального каталога в определенное имя группы / полный путь (рекурсивно) в облачном хранилище Google:

import glob
from google.cloud import storage
import os

def upload_local_directory_to_gcs(local_path, bucket, gcs_path):
    assert os.path.isdir(local_path)
    for local_file in glob.glob(local_path + '/**'):
        if not os.path.isfile(local_file):
           upload_local_directory_to_gcs(local_file, bucket, gcs_path + "/" + os.path.basename(local_file))
    else:
        remote_path = os.path.join(gcs_path, local_file[1 + len(local_path):])
        blob = bucket.blob(remote_path)
        blob.upload_from_filename(local_file)


upload_local_directory_to_gcs(local_path, bucket, BUCKET_FOLDER_DIR)
0 голосов
/ 26 июня 2019

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

Команда будет выглядеть примерно так:

gsutil -m cp -r <foldername> gs://<bucketname>

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