Как сделать резервную копию на диске Google с помощью дублирования?

Я пытался получить дубликаты для резервного копирования на диск Google. Но похоже, что он все еще использует старый клиентский API.

Я нашел какую-то ветку, в которой говорилось, что новый API должен поддерживаться, но не так много подробностей о том, как заставить его работать.

Я дошел до компиляции и использования duplicity 7.0.3, но потом получил эту ошибку:

BackendException: GOOGLE_DRIVE_ACCOUNT_KEY environment variable not set. Please read the manpage to fix.

Кто-нибудь настраивал duplicity для работы с Google Диском и знает, как это сделать?


person AxelOmega    schedule 12.07.2015    source источник


Ответы (1)


Теперь, когда Google начал заставлять клиентов использовать OAuth, использование Google Диска в качестве цели резервного копирования на самом деле стало очень запутанным. Я нашел отличный пост в блоге, который помог мне Это. Основные шаги:

Установить Пидрайв

PyDrive — это библиотека, которая позволяет Duplicity использовать OAuth для доступа к Диску.

pip install pydrive

должно быть достаточно, или вы можете воспользоваться менеджером пакетов вашего дистрибутива.

Создать токен API

Перейдите в консоль разработчика Google и войдите в систему. Создайте проект и выберите его в раскрывающемся списке на верхняя панель инструментов.

Выбор дублирующего проекта

Теперь выберите кнопку «Включить API и службы» в панели инструментов, которая уже должна быть вытянута вверх, а если нет, то находится в меню-гамбургере слева.

Найдите и включите Drive API. После того, как он включен, вы можете создать токен. Выберите «Учетные данные» на левой панели навигации и нажмите «Добавить учетные данные» > «Идентификатор клиента OAuth 2.0». Установите тип приложения «Другое».

Создание учетных данных

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

Экран учетных данных

Настроить дублирование

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

client_config_backend: settings  
client_config:  
   client_id: <your client ID>.apps.googleusercontent.com
   client_secret: <your client secret>
save_credentials: True
save_credentials_backend: file
save_credentials_file: gdrive.cache
get_refresh_token: True

(Я использую отличный интерфейс Duply, поэтому я сохранил его как ~/.duply/<server name>/gdrive).

Duplicity необходимо указать имя этого файла в переменной окружения GOOGLE_DRIVE_SETTINGS. Таким образом, вы можете вызвать двуличие следующим образом:

GOOGLE_DRIVE_SETTINGS=gdrive duplicity <...>

Или, если вы используете Duply, вы можете export использовать эту переменную в файле конфигурации Duply:

export GOOGLE_DRIVE_SETTINGS=gdrive

Запуск Duplicity в первый раз запустит процесс OAuth; вам будет предоставлена ​​ссылка для посещения, которая запросит разрешение для приложения, которое вы создали ранее в консоли, для доступа к вашей учетной записи Drive. Примите, и он даст вам еще один токен аутентификации, который нужно вставить обратно в терминал. Информация об авторизации будет сохранена в файле .cache вместе с файлом настроек gdrive.

На этом этапе вы должны быть в порядке, и Duplicity должен вести себя нормально. Удачи!

person George Hilliard    schedule 05.12.2015
comment
Выглядит многообещающе, попробую, когда будет возможность. - person AxelOmega; 11.12.2015
comment
Работает очень хорошо для меня, - person ehyG; 21.12.2015
comment
Похоже, что Google Console больше не предоставляет секрет клиента, когда я создаю учетные данные — вместо этого он дает мне какой-то закрытый ключ RSA, когда я загружаю их файл JSON. Не могли бы вы обновить свой ответ, чтобы учесть изменения Google? - person alexw; 06.10.2016
comment
@alexw Все еще работает для меня. Убедитесь, что вы выбрали идентификатор клиента OAuth в раскрывающемся списке учетных данных, а не ключ учетной записи службы. - person George Hilliard; 06.10.2016
comment
Ах ха! Я пытался настроить учетные данные через раздел создания учетной записи службы. Боже, как будто Google изо всех сил старался сделать это как можно более запутанным! Спасибо за помощь. - person alexw; 06.10.2016
comment
Еще одна вещь - кажется, что Google просит меня повторно подтвердить каждый раз, когда я каким-либо образом изменяю команду duplicity. Это нормально? - person alexw; 06.10.2016
comment
Похоже, что gdrive.cache записывался в мой текущий рабочий каталог, а не в тот же каталог, что и мой файл credentials. - person alexw; 06.10.2016
comment
GOOGLE_DRIVE_SETTINGS=gdrive duplicity <...> ... Что? Что, черт возьми, должна делать эта команда? Я сохранил свои учетные данные в ~/.config/duplicity/credentials, так что же мне установить для этой переменной? - person Zaz; 13.11.2016
comment
Что, черт возьми, должно быть <server name>, а аргументы двуличия <...>. Исходная папка в порядке, но какой URL-адрес я должен использовать, предположительно начинающийся с pydrive://? - person Eric; 13.10.2017