Работа с персональными хранилищами резервных копий

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), доступны. Этот метод вызывается перед выполнением каждой операции резервного копирования.

Комментарии
  1. Удостоверьтесь в том, что вы используете хранилище пар "ключ-значение" Plesk для шифрования и безопасного хранения паролей и ключей доступа.
  2. Создайте отдельные папки в корневой папке персонального хранилища для различных объектов, чтобы не смешивать файлы их резервных копий.

Работа с файлами

Запись в персональное хранилище

Методы, отвечающие за запись созданной резервной копии в персональное хранилище, вызываются в следующем порядке:

  1. openFileWrite()
  2. [несколько вызовов] appendFile()
  3. closeFile()

Некоторые хранилища могут требовать указания размера записываемого файла перед началом его загрузки. Эта информация недоступна во время создания резервной копии Plesk. В этом случае резервную копию необходимо разбить на несколько файлов известного размера. Эти файлы должны быть названы следующим образом:

  1. backup.tar
  2. backup.tar1
  3. backup.tar2
  4. ...

После этого Plesk Backup Manager сможет корректно отображать информацию и работать с резервной копией.

Чтение из персонального хранилища

Методы, отвечающие за чтение резервной копии из персонального хранилища, вызываются в следующем порядке:

  1. openFileRead()
  2. [несколько вызовов] readFile()
  3. closeFile()

Тестирование работы расширения с персональным хранилищем

To make sure all the backup/restore-related extension functions work properly, run the following command:

/opt/psa/admin/bin/pmm-ras --check-repository --debug --verbose --dump-storage=ext://<ext name>/subscription/<id>/ --session-path=/var/log/plesk/PMM
 

Leave your feedback on this topic here

If you have questions or need support, please visit the Plesk forum or contact your hosting provider.
The comments below are for feedback on the documentation only. No timely answers or help will be provided.