Создание полной структуры папок из Google Диска, включая пути - PullRequest
1 голос
/ 01 июля 2019

Цель:

Определите, какие файлы находятся на моем локальном жестком диске, но не на Google Диске (онлайн, не синхронизированы), используя одну и ту же структуру папок между двумя решениями.

Подробности:

Я использую Google Drive в качестве резервной копии на жестком диске и загрузил более 1 ТБ данных. Когда файлы попадают в облако, я иногда удаляю их на жестком диске, чтобы освободить место. Общий объем файлов на моем Google Диске превышает место на жестком диске, и поэтому я не синхронизирую свою папку GDrive на моем жестком диске.

Недавно я понял, что не все файлы на моем жестком диске также есть на Google Диске, поэтому я хотел добавить отсутствующие файлы. К сожалению, у меня нет исчерпывающего списка файлов, которые отсутствуют на диске.

Выбранный подход:

(Рад рассмотреть любой другой подход, если вы считаете, что это проще / быстрее!)

Сравните содержимое отдельных папок на моем GDrive и на моем жестком диске, используя скрипт Python. К счастью, структура папок такая же, то есть на Google Диске у меня может быть папка Fotos / 2019 / January и такая же структура на моем жестком диске.

Для локальной копии у меня не было проблем с использованием следующего кода:

import os

hd_directories = []

for path, dirs, files in os.walk(r'D:'):
    for f in files:
        value = path+'\\'+f
        hd_directories.append(value)

Это дает следующий вывод:

D:\Fotos\2019\January\1.jpg
D:\Fotos\2019\January\2.jpg
D:\Fotos\2019\January\3.jpg

Я пытался получить аналогичный вывод для Google Drive через их API, но до сих пор терпел неудачу. Лучшее, что у меня есть, - это использование слегка модифицированной версии этого скрипта (https://github.com/beatleuk/gdfl), чтобы получить структуру папок в виде вложенного списка HTML, но затем изо всех сил пытался сгладить этот вложенный список "ul-li" в нужную папку структура.

Редактировать: пример вывода, который я получаю при запуске этого кода, представляет собой HTML-файл со структурой, которая выглядит следующим образом:

<ul>
    <li> D
        <ul>
            <li> Fotos
                <ul>
                    <li> 2019
                        <ul>
                            <li> 1.jpg
                            <li> 2.jpg
                            <li> 3.jpg
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

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

1 Ответ

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

Google-диск не может действительно получить полный путь к файлу, когда вы делаете file.list или file.get.

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

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

У меня есть пример этого, но он написан на C #, так что, вероятно, он вам не очень поможет.

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