Модель B
Контент живёт на d-cms, не на Blob клиента
JSON и фото сайта хранятся в tenant-хранилище d-cms. Сайту не нужен свой Vercel Blob — он читает /api/v1/sites/:siteId/content и показывает CDN-URL картинок.
Лимиты тарифа
- Start — 500 МБ
- Site — 2 ГБ
- Studio — 20 ГБ на сайт
- Agency — 100 ГБ на сайт
- Enterprise — от 500 ГБ
На 80% — предупреждение в кабинете. На 100% загрузка фото блокируется. Правки JSON небольшого размера всё ещё проходят. Хранилище входит в тариф; отдельная оплата за овердж — позже.
Сжатие фото
Оригинал больше 10 МБ отклоняется. Длинная сторона режется до 1920 px, файл сохраняется как WebP. Публичный URL отдаёт CDN Vercel Blob.
Сайт читает так
NEXT_PUBLIC_DCMS_URL=https://<d-cms>
DCMS_SITE_ID=site_…
DCMS_SITE_TOKEN=… # тот же секрет, что CMS_SECRET
import { getHostedContent as getContent } from "d-cms";
const tree = await getContent(process.env.DCMS_SITE_ID, {
token: process.env.DCMS_SITE_TOKEN,
});