Работа с персональными хранилищами резервных копий
Plesk предоставляет возможность выбрать удаленное хранилище для хранения ваших резервных копий, например, FTP-сервер. Используя Plesk SDK, вы можете также добавлять другие персональные хранилища резервных копий и разрешать Plesk использовать их для хранения резервных копий.
Класс pm_Hook_Backup_Transport определяет набор методов, которые описывают необходимые функции авторизации, работы с файлами и т.д. С помощью этого хука Plesk Backup Manager узнает о новом персональном хранилище и предоставляет все те же операции и информацию, которые доступны для хранилищ резервных копий, используемых по умолчанию.
Чтобы это проиллюстрировать, Plesk предлагает следующий пример проекта: https://github.com/plesk/ext-cloud-backup-example.
Авторизация
Как разработчик расширения, вы можете выбирать способ обработки авторизации: с помощью OAuth2 или с помощью имени пользователя и пароля.
Имя пользователя и пароль
Имя пользователя и пароль (либо ключ доступа/секретный ключ), используемые для авторизации в персональном хранилище, указываются на форме настроек персонального хранилища pm_Hook_Backup_Transport::getSettingsSubForm(). Введенные имя пользователя и пароль должны проверяться в методе pm_Form_SubForm::isValid().
OAuth2
Авторизация OAuth2 должна быть реализована в методе pm_Hook_Backup_Transport::authorize(). Этот метод всегда вызывается перед отображением формы настроек персонального хранилища, pm_Hook_Backup_Transport::getSettingsSubForm().
Проверка
Метод pm_Hook_Backup_Transport::check() используется для того, чтобы убедиться, что все функции, участвующие в операциях резервного копирования и восстановления (например, CRUD), доступны. Этот метод вызывается перед выполнением каждой операции резервного копирования.
Комментарии
- Удостоверьтесь в том, что вы используете хранилище пар «ключ-значение» Plesk для шифрования и безопасного хранения паролей и ключей доступа.
- Создайте отдельные папки в корневой папке персонального хранилища для различных объектов, чтобы не смешивать файлы их резервных копий.
Работа с файлами
Запись в персональное хранилище
Методы, отвечающие за запись созданной резервной копии в персональное хранилище, вызываются в следующем порядке:
- openFileWrite()
- [несколько вызовов] appendFile()
- closeFile()
Некоторые хранилища могут требовать указания размера записываемого файла перед началом его загрузки. Эта информация недоступна во время создания резервной копии Plesk. В этом случае резервную копию необходимо разбить на несколько файлов известного размера. Эти файлы должны быть названы следующим образом:
backup.tar
backup.tar1
backup.tar2
...
После этого Plesk Backup Manager сможет корректно отображать информацию и работать с резервной копией.
Чтение из персонального хранилища
Методы, отвечающие за чтение резервной копии из персонального хранилища, вызываются в следующем порядке:
- openFileRead()
- [несколько вызовов] readFile()
- closeFile()
Тестирование работы расширения с персональным хранилищем
Чтобы убедиться, что все функции расширения, связанные с резервным копированием и восстановлением, работают корректно, запустите следующую команду:
/opt/psa/admin/bin/pmm-ras --check-repository --debug --verbose --dump-storage=ext://<ext name>/subscription/<id>/ --session-path=/var/log/plesk/PMM