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