В инструкции рассмотрен процесс загрузки и выгрузки файлов в/из объектного хранилища 1cloud с помощью языка программирования Python.
Что это такое?
Иногда бывает удобно использовать именно язык Python в силу разных причин для резервирования данных в объектное хранилище. В инструкции описано получение токена авторизации для подключения к хранилищу и скрипты для загрузки или выгрузки файлов.
В нашей инструкции используется версия Python 2.7.
Первоначальные требования
Для того чтобы выполнить резервное копирование данных, необходимо:
- Наличие контейнера в облачном хранилище, в котором будут храниться резервные копии. Создать его можно несколькими способами: через панель управления; с помощью приложений S3Browser, Cyberduck или Rclone; с помощью Swift API или S3 REST API.
- Необходимо запомнить ExternalId хранилища в системе swift, это можно сделать через API запрос.
- Пользователь, от имени которого будет происходить загрузка дампа в контейнер, должен иметь к нему доступ. К приватным контейнерам по умолчанию доступ имеет только владелец хранилища, к публичным доступ имеют все пользователи. О том как предоставить доступ другим пользователям для работы с приватным контейнером читайте в нашей инструкции.
Установка 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>, <имя_контейнера>, <имя_файла>, <токен>, <путь_до_загружаемого_файла>. В результате на вашей машине будет создан новый файл:
Например:
После выполнения скрипта по указанному пути появится файл из хранилища.