VK Cloud logo
Обновлена 15 апреля 2024 г. в 08:50

Справочник Cloud Storage

Бакет

Бакет — это контейнер для хранения объектов.

Для доступа к объектам внутри бакета используется его название. Название бакета должно быть уникальным для всей платформы. После создания бакета его название изменить нельзя.

Можно создать несколько бакетов для хранения объектов, но нельзя вложить один бакет в другой.

Для каждого бакета доступны:

  • управление доступом;
  • управление объектами и настройка их жизненного цикла;
  • cоздание вебхуков;
  • настройка совместного использования ресурсов (CORS).

Объект

Объект — это файл, который загружен в хранилище, и его метаданные. Файл может быть любого формата.

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

Для извлечения объекта из хранилища используется специальный ключ-идентификатор. Такой ключ содержит название бакета, его расположение и название файла.

Для каждого объекта можно настроить доступ и жизненный цикл.

Класс хранения

Каждый объект в хранилище имеет свой класс хранения. Класс хранения зависит от назначения объекта и влияет на его стоимость.

Классы хранения задаются:

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

API-ключи

API-ключи — это ключи доступа для работы с Cloud Storage через API.

ACL

Access Control List (ACL) позволяет управлять доступом пользователей к бакетам и объектам. Он определяет, каким учетным записям или группам предоставляется доступ, а также тип доступа.

ACL для бакета задается при создании бакета. ACL для объекта по умолчанию наследуется от бакета. В дальнейшем ACL для бакета или объекта можно изменить.

ACL бакета и объекта внутри него может отличаться.

CORS

Cross-Origin Resource Sharing (CORS) — технология совместного использования ресурсов между разными источниками. Например, CORS позволяет клиентским веб-приложениям, загружаемым в один домен, взаимодействовать с ресурсами другого домена.

CORS использует дополнительные HTTP-заголовки. Они позволяют серверу указывать источники, отличные от его собственных. Браузер пользователя будет записывать данные из указанных сервером источников.

Для повышения безопасности данные из сторонних источников загружаются через защищенное соединение. Для этого браузер отправляет на сервер предварительный запрос. Сервер может принять или отклонить запрос. Если запрос отклоняется, данные не будут передаваться.

Вебхуки

Вебхуки (webhooks) информируют пользователя о произошедшем в бакете событии. Когда в бакете происходит определенное событие, на указанный URL приходит сообщение. Вебхуки помогают отслеживать изменения в бакете, например, создание или удаление объектов.

Жизненный цикл

Жизненный цикл — это автоматизированный механизм очистки объектов через определенное время.

Правила очистки можно настроить для каждого объекта в бакете. В бакете может действовать одно правило или набор из нескольких правил.

Набор правил жизненного цикла задается на уровне одного бакета. Настроить жизненный цикл для группы бакетов, каталога или проекта нельзя.

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

Составная загрузка (multipart) позволяет загружать и хранить файлы большого размера в объектном хранилище.

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

Когда все части загружены, хранилище собирает эти части и создает объект.

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

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

Подписанный URL

Владелец бакета может предоставить доступ к своему бакету неавторизованным пользователям. Для этого на определенный срок оформляются предварительно подписанные URL-адреса. С такого адреса любой пользователь может скачать или загрузить объект в бакет.

При создании подписанного URL-адреса необходимо предоставить:

  • статические ключи доступа;
  • имя бакета;
  • ключ объекта;
  • метод HTTP (GET для скачивания объектов из бакета, PUT для загрузки их в бакет);
  • дату и время истечения срока действия подписанного URL.

Подписанные URL-адреса можно использовать несколько раз, но только в течение указанного срока.

Префиксные ключи

Префиксные ключи (prefix access keys) позволяют создать пользователей, для которых доступ ограничен по определенному пути. Данные пользователи привязываются к бакетам, относительно которых работает их префикс.

Ограничения при работе с префиксными ключами:

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