Исправление загрузки изображений историй¶
Дата: 2026-03-15 Исполнитель: AI Agent
Контекст¶
Пользователь столкнулся с ошибкой Failed to fetch при попытке загрузить изображение для истории (файл Slide 16_9 - 13.png).
Диагностика¶
- Анализ кода: Frontend (
CreateStoryDialog.tsx) использует Supabase Client для загрузки в бакетstory-images(с фоллбэком наpublic-story-images). - Проверка инфраструктуры:
- Контейнеры Supabase (Kong, Storage, DB) запущены.
- Kong настроен корректно (CORS разрешает
localhost:9003). - Проблема: Бакеты
story-imagesиpublic-story-imagesотсутствовали в хранилище. - Проблема: Отсутствовали RLS политики для этих бакетов в таблице
storage.objects.
Выполненные действия¶
- Создание бакетов:
- Созданы публичные бакеты
story-imagesиpublic-story-imagesчерез API Storage.
- Созданы публичные бакеты
- Настройка политик безопасности (RLS):
- Выполнен SQL-скрипт для добавления политик в
storage.objects. - Разрешена загрузка (INSERT), обновление (UPDATE), удаление (DELETE) и чтение (SELECT) для:
- Аутентифицированных пользователей (
authenticated). - Анонимных пользователей (
anon) — для обеспечения работы публичных загрузок (фоллбэк).
- Аутентифицированных пользователей (
- Выполнен SQL-скрипт для добавления политик в
Результат¶
Загрузка изображений в истории теперь должна работать корректно. Ошибка Failed to fetch должна исчезнуть, так как сервер теперь корректно принимает запросы на загрузку в существующие бакеты с разрешенными правами.