Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.royalratsproductions.ru/llms.txt

Use this file to discover all available pages before exploring further.

ADR 0001: R2-style storage для изображений реестра

Статус

Planned

Контекст

Реестры могут использовать изображения записей. URL, вставленные вручную, не всегда подходят для долгосрочного хранения: ссылка может устареть, измениться или перестать быть доступной. SQLite подходит для структурированных данных реестра, но не должен становиться хранилищем binary blob-изображений.

Решение

Для постоянных изображений реестра планируется использовать object storage в стиле R2. База данных должна хранить метаданные и ссылку на объект, а не содержимое изображения. Постоянные ассеты должны быть отделены от временного cache.

Почему так

  • object storage лучше подходит для файлов;
  • SQLite остается компактным и предсказуемым;
  • изображения можно обслуживать отдельно от доменных записей;
  • lifecycle объектов можно описать явно;
  • будущая миграция к dashboard/API не потребует переноса blob-данных из SQLite.

Альтернативы

  • Хранить изображения как внешние URL без копирования: проще, но менее надежно.
  • Хранить blob-данные в SQLite: упрощает перенос одного файла, но ухудшает размер, backup и обслуживание.
  • Хранить файлы на локальном диске: возможно для временного cache, но хуже для постоянных ассетов и масштабирования.

Последствия

  • Понадобится слой загрузки и проверки изображений.
  • Понадобятся правила удаления, архивирования и замены объектов.
  • В базе появятся метаданные asset-записей.
  • Старые URL-поля должны оставаться совместимыми до отдельной миграции.

Не входит в решение

  • Реализация загрузчика.
  • Миграция существующих URL.
  • Выбор конкретного провайдера production-хранилища.
  • Правила CDN, приватности и подписанных ссылок.