Есть ли способ создать сценарий Python в облачной функции Google, который загружает файл из Bucket на локальный компьютер? - PullRequest
0 голосов
/ 31 января 2020

В настоящее время я знаю о двух способах загрузки файла из корзины на компьютер. 1) Вручную go в корзину и нажав кнопку загрузки. 2) Использование gsutil

. Есть ли способ сделать это в программа в облачных функциях Google? Вы не можете выполнить gsutil в Python скрипте. Я также попробовал это:

with open("C:\", "wb") as file_obj:
    blob.download_to_file(file_obj)  

, но я считаю, что ищет каталог в Google Cloud. Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 01 февраля 2020

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

Обычным способом отправки файла на компьютер является использование протокола FTP. Поэтому установите FTP-сервер на свой компьютер и настройте функцию чтения в корзину, а затем отправьте файл на свой FTP-сервер (вам нужно получить свой publi c IP, убедитесь, что правила / маршрутизаторы брандмауэра настроены за это,...). Это не самый простой способ.

Gsutil с командой rsyn c отлично работает. Используйте запланированное задание на Windows, если хотите выполнить это.

0 голосов
/ 31 января 2020

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

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

Надеюсь, вы найдете это полезным .

...