Skip to main content
Version: 1.12-grodno (current)

Object Storage

Все бакеты развертываются с помощью Terraform модуля bucket и используют Yandex Object Storage.


my.medikt.net

Тип: SPA приложение (user-spa)

Описание: Хостинг статического контента для user-spa. Использует website hosting конфигурацию.

Особенности:

  • Website hosting включен (index.html, error.html)
  • CORS: только разрешенные origins (https://my.medikt.net/)
  • ACL: AllUsers READ (публичный доступ)
  • Lifecycle: резервация user-spa бэкапов через 90 дней

private.medikt.net

Тип: Приватное хранилище

Описание: Хранилище для приватных файлов (загружаемые пользователем видео, временные файлы транскодирования).

Особенности:

  • CORS правила разрешают PUT/GET от любых источников
  • Используется сервисным аккаунтом transcoder для загрузки исходных файлов

public.medikt.net

Тип: Публичное хранилище

Описание: Хранилище для публичного контента. Доступно всем пользователям.

Особенности:

  • AllUsers имеют права READ (публичный доступ по ссылкам)
  • CORS правила разрешают PUT/GET от любых источников
  • Используется сервисным аккаунтом content для доступа к контенту

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

  • Содержимое кэшируется через CDN (cdn.medikt.net → public.medikt.net)
  • Контент доступен по URL вида: https://cdn.medikt.net/...

transcoderbucket.medikt.net

Тип: Временное хранилище для транскодирования

Описание: Хранилище для временного хранения видео во время процесса транскодирования.

Особенности:

  • Lifecycle rule: автоматическое удаление через 31 день
  • Используется сервисным аккаунтом transcoder

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

  • Временное хранилище для загружаемых пользователем видео
  • Временное хранилище для экспортированных из edgecenter стримов

Схема взаимодействия

user → upload API → private.medikt.net (загрузка)
→ transcoder → transcoderbucket.medikt.net (временное хранилище)
→ CDN (cdn.medikt.net) → public.medikt.net (доставка контента)

Terraform модуль bucket

Все бакеты используют модуль ../modules/bucket с общими параметрами:

Основные переменные:

  • bucket-name - имя бакета
  • provider-zone, provider-token, provider-cloudid, provider-folderid - параметры провайдера
  • cors_rule - настройки CORS
  • bucket_grants - права доступа (например, AllUsers READ)
  • expiration_rotation_period - время жизни объектов в днях
  • website - конфигурация website hosting