Возможности по управлению объектами и бакетами

Сервис VK Object Storage поддерживает следующие возможности для работы с бакетами и объектами:

Стандартная и составная загрузка объектов

В бакет можно загружать файлы любого типа, например, изображения, резервные копии, видео. После загрузки он сохраняется как объект VK Object Storage.

В зависимости от объема файла рекомендованы различные способы загрузки:

При составной загрузке данные разделяются на несколько частей и загружаются независимо по отдельности и в любом порядке. Если передача какой-либо части не удалась, ее можно передать повторно, не затрагивая другие части. Когда все части загружены, хранилище собирает их вместе в заданном порядке и создает объект.

Преимущества составной загрузки:

  • Части большого файла можно загружать параллельно, тем самым сокращая время загрузки.
  • Если какая-то часть не была загружена из-за ошибки сети, ее быстрее перезагрузить, чем большой файл.
  • Можно приостановить загрузку и продолжить ее позднее.
  • Начать загрузку можно до того, как будет известен окончательный размер файла, т.е. можно загружать файл по мере его создания.

Копирование объектов

VK Object Storage позволяет создавать копии хранимых объектов. Копирование выполняется с помощью CLI, SDK, файлового менеджера или API.

С помощью копирования вы можете:

  • Создавать дополнительные копии объектов в том же самом или другом бакете.

  • Переименовывать объекты.

    Прямое переименование объектов в бакете не поддерживается. Обойти это ограничение можно, создав копию объекта с новым именем и затем удалив исходный объект. В файловых менеджерах эти действия выполняются автоматически.

  • Изменять метаданные объекта.

    При загрузке объекта в бакет ему присваиваются метаданные в формате ключ/значение. Единственный способ изменить их после загрузки — создать копию объекта с тем же именем, указав новые метаданные в запросе на копирование. Таким способом можно изменить пользовательские метаданные и некоторые системные метаданные, например класс хранения.

  • Копировать теги исходного объекта или задать новые теги новому объекту.

Уведомления о событиях в бакете

VK Object Storage позволяет настроить отправку уведомлений о событиях в бакете с помощью вебхуков (webhooks). В каждом вебхуке указывается тип события и URL-адрес, на который приходит сообщение или HTTP/HTTPS-запрос, когда в бакете происходит событие указанного типа. Можно создать вебхуки для следующих типов событий:

  • создание объекта;
  • копирование объекта;
  • удаление объекта;
  • завершение составной загрузки.

Использование вебхуков позволяет:

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

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

Маркировка объектов тегами

Маркировка объектов (object tags) позволяет их логически группировать. Маркировка устанавливается тегами (tag). Тег представляет собой пару ключ/значение.

Ограничения:

  • Для объекта с тегом:

    • У объекта может быть до 10 тегов.
    • Теги, связанные с объектами, должны иметь уникальные ключи.
  • Для ключа и значения тега:

    • Длина ключа — до 128 Unicode-символов, но не более 256 байт.
    • Длина значения — до 256 Unicode-символов, но не более 528 байт.
    • Кодировка — UTF-16.
    • Ключ и значение регистрозависимы.
    • Допустимые символы — буквы латинского алфавита, цифры, пробел и символы +, -, =, ., _, :, /.

Теги могут добавляться к новым объектам при их загрузке или к существующим объектам.

Использование API

VK Object Storage предоставляет RESTful XML API для программного управления бакетами и объектами с помощью стандартных HTTP-запросов. VK Object Storage API предназначен для взаимодействия с Amazon Web Service S3 API и имеет совместимый с ним интерфейс. Для доступа к VK Object Storage API используется протокол, созданный для сервиса AWS S3.

Запросы к API вы можете передавать через CLI, SDK или файловые менеджеры.

Некоторые методы AWS S3 API в сервисе VK Object Storage не реализованы. Запросы для таких методов возвращают S3-совместимый ответ об ошибке NotImplemented в формате XML.