Как сделать резервную копию на Google Drive, используя двуличность?

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

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

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

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

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

1 ответ

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

Установите PyDrive

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).

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

GOOGLE_DRIVE_SETTINGS=gdrive duplicity <...>

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

export GOOGLE_DRIVE_SETTINGS=gdrive

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

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

Другие вопросы по тегам