VK Object Storage logo
Помощь
Обновлена 17 июля 2026 г. в 15:35

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Конфигурация вебхуков для бакета создается через личный кабинет IAM Only или с помощью 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.

Метод

Описание

Бакет

CreateBucket

Создает новый бакет

DeleteBucket

Удаляет бакет

HeadBucket

Проверяет, существует ли бакет и есть ли у пользователя права доступа к нему

ListBuckets

Возвращает список бакетов

GetBucketLocation

Возвращает регион бакета

Объект

CopyObject

Создает копию существующего объекта (в том же или в другом бакете)

DeleteObject

Удаляет объект из бакета

DeleteObjects

Удаляет несколько объектов одним запросом

GetObject

Возвращает содержимое объекта

HeadObject

Возвращает метаданные объекта

ListObjects

Возвращает до 1000 объектов. Это устаревший метод, поддерживается для совместимости

ListObjectsV2

Возвращает до 1000 объектов. Актуальный метод

PutObject

Добавляет объект в бакет

GetObjectRange

Возвращает только указанный байтовый диапазон объекта (range-запрос)

OptionsObject

Обрабатывает предварительный CORS-запрос (метод OPTIONS) к объекту. Возвращает заголовки разрешений

Блокировка объектов (object lock)

GetObjectLegalHold

Возвращает текущее состояние бессрочной (legal hold) блокировки для объекта

GetObjectRetention

Возвращает информацию о текущей временной блокировке (retention) объекта

PutObjectLegalHold

Устанавливает или снимает бессрочную (legal hold) блокировку объекта

PutObjectLockConfiguration

Создает или изменяет настройки блокировок по умолчанию в бакете

PutObjectRetention

Устанавливает или обновляет временную блокировку (retention) для объекта

Управление доступом (ACL)

GetObjectACL

Возвращает ACL (список управления доступом) объекта

PutObjectACL

Устанавливает ACL объекта

GetBucketAcl

Возвращает ACL бакета

PutBucketAcl

Устанавливает ACL бакета

Жизненный цикл объектов (lifecycle)

GetBucketLifecycleConfiguration

Возвращает конфигурацию жизненного цикла бакета

PutBucketLifecycleConfiguration

Создает или полностью заменяет конфигурацию жизненного цикла бакета

DeleteBucketLifecycle

Удаляет конфигурацию жизненного цикла бакета

Составная загрузка (multipart)

AbortMultipartUpload

Прерывает незавершенную составную загрузку и освобождает ресурсы

CompleteMultipartUpload

Завершает составную загрузку, собирая части в финальный объект

CreateMultipartUpload

Инициирует составную загрузку объекта

ListMultipartUploads

Возвращает список текущих незавершенных составных загрузок в бакете

ListParts

Возвращает список загруженных частей объекта

UploadPart

Загружает часть объекта

UploadPartCopy

Загружает часть объекта, скопировав данные из существующего объекта

Политики владения объектами (ownership controls)

PutBucketOwnershipControls

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

DeleteBucketOwnershipControls

Удаляет политики по управлению владельцем объектов в бакете

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

GetObjectTagging

Возвращает теги, назначенные объекту

PutObjectTagging

Присваивает или обновляет теги объекта

DeleteObjectTagging

Удаляет теги объекта

Кросс-доменные запросы (CORS)

GetBucketCORS

Возвращает текущую конфигурацию CORS бакета

PutBucketCORS

Устанавливает или заменяет конфигурацию CORS бакета

DeleteBucketCORS

Удаляет конфигурацию CORS бакета

Уведомления

GetBucketNotificationConfiguration

Возвращает текущую конфигурацию уведомлений для бакета

PutBucketNotificationConfiguration

Устанавливает или обновляет конфигурацию уведомлений

DeleteBucketNotificationConfiguration

Удаляет конфигурацию уведомлений у бакета