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, приватности и подписанных ссылок.