Как сделать резервную копию на 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 должна вести себя нормально. Удачи!