Резервное копирование данных в хранилище с помощью Python на Linux/Windows

В инструкции рассмотрен процесс загрузки и выгрузки файлов в/из объектного хранилища 1cloud с помощью языка программирования Python.

Что это такое?

Иногда бывает удобно использовать именно язык Python в силу разных причин для резервирования данных в объектное хранилище. В инструкции описано получение токена авторизации для подключения к хранилищу и скрипты для загрузки или выгрузки файлов.

В нашей инструкции используется версия Python 2.7.

Первоначальные требования

Для того чтобы выполнить резервное копирование данных, необходимо:

  1. Наличие контейнера в облачном хранилище, в котором будут храниться резервные копии. Создать его можно несколькими способами: через панель управления; с помощью приложений S3Browser, Cyberduck или Rclone; с помощью Swift API или S3 REST API.
  2. Необходимо запомнить ExternalId хранилища в системе swift, это можно сделать через API запрос.
  3. Пользователь, от имени которого будет происходить загрузка дампа в контейнер, должен иметь к нему доступ. К приватным контейнерам по умолчанию доступ имеет только владелец хранилища, к публичным доступ имеют все пользователи. О том как предоставить доступ другим пользователям для работы с приватным контейнером читайте в нашей инструкции.

Установка Python на Linux

Для установки Python выполните следующие команды, но как правило Python уже установлен на наших виртуальных серверах:

Для установки необходимых зависимостей выполните следующие команды:

Установка Python на Windows

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

После установки в меню Windows появится ссылка на командную строку. Для дальнейшей работы необходимо открыть командную строку.

Для установки дополнительных библиотек используйте pip. Откройте командную строку и перейдите в каталог:

cd C:\Python27\Scripts

Для установки выполните следующие команды:

.\pip.exe install certifi
.\pip.exe install pycurl

Теперь все необходимые пакету установлены.

Получения токена для управления хранилищем

Запустите следующий скрипт для получения токена авторизации, указав при этом следующие параметры: <TenantId>, <имя_пользователя>, <пароль>.

Скрипт:

Например:

В результате выполнения вы увидите подобный ответ:

Токен является значением параметра X-Subject-Token, это значение в дальнейшем и будет использоваться.

Загрузка файлов в хранилище

Для того чтобы загрузить файл в объектное хранилище замените в следующих строках кода параметры на свои: <ExternalId>, <имя_контейнера>, <имя_файла>, <токен>, <путь_до_файла_для_загрузки>>:

Например:

В результате указанный файл будет загружен в файловое хранилище.

Выгрузка файла

С помощью Python также можно загрузить файл из объектного хранилища на ваш локальный компьютер или сервер. Замените в следующих строках кода параметры на свои: <ExternalId>, <имя_контейнера>, <имя_файла>, <токен>, <путь_до_загружаемого_файла>. В результате на вашей машине будет создан новый файл:

Например:

После выполнения скрипта по указанному пути появится файл из хранилища.

 

Последнее обновление: 17.10.2018