Загрузка файлов с виртуальной машины GCE на Windows - PullRequest
1 голос
/ 03 апреля 2020

Я создал виртуальную машину, используя сервер Debian GNU / Linux 9 Google Cloud. Там у меня есть скрипт, который пишет и сохраняет в файл Excel (xlsx) в определенное время каждый день. Я установил tmux, чтобы он продолжал запускать сценарий, когда я выключал свой p c.

Есть ли способ для меня получить эту информацию простым способом вместо того, чтобы открывать сервер? и скачать его оттуда. Это своего рода побеждает всю цель создания бота. : /

Спасибо!

Ps. Я на Windows10 рабочем столе

1 Ответ

0 голосов
/ 03 апреля 2020

В качестве возможного решения вы можете выполнить следующие шаги:

  1. создать корзину в Google Storage

  2. установить gcsfuse

  3. смонтировать ваш контейнер к виртуальной машине в качестве файловой системы с Cloud Storage FUSE :

    bucket-fuse-mount:~$ gcsfuse bucket-fuse-mount /home/user/bucket-fuse-mount/
    Using mount point: /home/user/bucket-fuse-mount
    Opening GCS connection...
    Opening bucket...
    Mounting file system...
    File system has been successfully mounted.
    
  4. проверьте, можете ли вы писать в установленное ведро:

    bucket-fuse-mount:~$ touch /home/user/bucket-fuse-mount/test-file
    touch: cannot touch '/home/user/bucket-fuse-mount/test-file': Input/output error
    

    , если вы видите ту же ошибку go до Compute Engine -> VM instances -> остановить виртуальную машину -> нажать NAME_OF_VM_INSTANCE -> нажать EDIT -> go до Access scopes -> выбрать Set access for each API -> найти Storage и измените Read Only на Full, в результате Cloud Storage FUSE сможет использовать встроенную служебную учетную запись Compute Engine -> запустить VM -> смонтировать корзину и снова проверить:

    bucket-fuse-mount:~$ touch /home/user/bucket-fuse-mount/test-file
    bucket-fuse-mount:~$
    bucket-fuse-mount:~$ ls -l /home/user/bucket-fuse-mount/
    total 0
    -rw-r--r-- 1 user user 0 Apr  4 19:15 test-file
    
  5. сохранение файлов .xlsx в смонтированном ведре (просто измените путь в вашем скрипте)

  6. загрузка файлов из корзины с помощью команды gsutil непосредственно из Windows (gsutil команда является частью Googl Облачный SDK ):

    gsutil cp gs://[BUCKET_NAME]/[OBJECT_NAME] [SAVE_TO_LOCATION]
    

    для меня это выглядит так:

    gsutil cp gs://bucket-fuse-mount/test-file test-file 
    Copying gs://bucket-fuse-mount/test-file...
    / [1 files][    0.0 B/    0.0 B]                                                
    Operation completed over 1 objects. 
    

    Нет необходимости подключения к вашему серверу.

Кроме того, вы можете загрузить файлы на вашу виртуальную машину таким же образом.

...