Как организовать массовое хранение файлов с помощью IBM Object Storage?

Я использую IBM Object Storage для хранения огромного количества очень маленьких файлов, скажем, более 1500 маленьких файлов за один час. (Общий размер 1500 файлов составляет около 5 МБ). Я использую API хранилища объектов для размещения файлов по одному файлу за раз.

Проблема в том, что для хранения 1500 небольших файлов в сумме требуется около 15 минут. Это с настройкой и закрытием соединения с хранилищем объектов.

Есть ли способ сделать массовую публикацию, чтобы отправить более одного файла в одном сообщении?

С уважением,


person arjan kroon    schedule 26.09.2016    source источник


Ответы (1)


Посмотрите на archive-auto-extract. Функция доступна в Openstack Swift (объектное хранилище Bluemix). Я предполагаю, что вы знакомы с получением X-Auth-Token и Storage_URL из хранилища объектов Bluemix. Если нет, мой пост о манифесты больших файлов объясняют процесс. Из документа ограничения включают:

  • Вы должны использовать утилиту tar для создания файла архива tar.
  • Вы можете загружать обычные файлы, но не можете загружать другие элементы (например, пустые каталоги или символические ссылки).
  • Вы должны использовать кодировку UTF-8 для имен членов.

Основные шаги будут такими:

  1. Убедитесь, что IBM Bluemix поддерживает эту функцию, просмотрев сведения о службе @ https://dal.objectstorage.open.softlayer.com/info . Вы увидите раздел JSON в ответе, похожий на:
    "bulk_upload": {
          "max_failed_extractions": 1000,
          "max_containers_per_extraction": 10000
    }
  1. Создайте tar-архив желаемого набора файлов. tar gzip является наиболее распространенным.
  2. Upload this tar archive to object storage with a special parameter that tells swift to auto-extract the contents into the container for you.

    PUT /v1/AUTH_myaccount/my_backups/?extract-archive=tar.gz

    Из документации: Чтобы загрузить файл архива, сделайте запрос PUT. Добавьте параметр запроса extract-archive=format, чтобы указать, что вы загружаете файл архива tar вместо обычного содержимого. Включите в тело запроса содержимое локального файла backup.tar.gz.

    Что-то типа:

    AUTH_myaccount/my_backups/etc/config1.conf
    AUTH_myaccount/my_backups/etc/cool.jpg
    AUTH_myaccount/my_backups/home/john/bluemix.conf
    ...
    
  3. Проверьте результаты. Любой каталог верхнего уровня в архиве должен создать новый контейнер в вашей учетной записи хранилища объектов Swift.

Вуаля! Массовая загрузка. Надеюсь это поможет.

person Sanjay.Joshi    schedule 10.11.2016