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