Update Next.js configuration for S3 support and enhance admin dashboard functionality - Added S3 hostname to next.config.js for image uploads - Updated package.json and package-lock.json with AWS SDK dependencies - Improved admin layout with S3 status component and enhanced dashboard statistics loading logic - Refactored news loading in NewsBlock component to handle errors gracefully.

This commit is contained in:
albivkt
2025-07-13 23:36:38 +03:00
parent c0e91bba1d
commit 162d96e9aa
21 changed files with 3675 additions and 137 deletions

79
S3_TROUBLESHOOTING.md Normal file
View File

@ -0,0 +1,79 @@
# Устранение неполадок S3
## Возможные причины ошибки S3
### 1. Проблемы с переменными окружения
- **Проверка**: Убедитесь, что все переменные S3 настроены в `.env`
- **Команда**: `Get-Content .env | Select-String "S3"`
- **Тест**: `curl http://localhost:3000/api/test-s3`
### 2. Проблемы с сетевым подключением
- **Симптомы**: Таймаут подключения, ошибки сети
- **Проверка**: Попробуйте получить доступ к `https://s3.twcstorage.ru` напрямую
- **Решение**: Проверьте файрвол, прокси-настройки
### 3. Проблемы с учетными данными
- **Симптомы**: Ошибки авторизации, 403 Forbidden
- **Проверка**: Убедитесь, что Access Key и Secret Key корректны
- **Решение**: Обновите учетные данные в `.env`
### 4. Проблемы с бакетом
- **Симптомы**: Ошибки "bucket not found", 404
- **Проверка**: Убедитесь, что имя бакета `617774af-ckeproekt` корректно
- **Решение**: Проверьте настройки бакета в панели управления
### 5. Проблемы с CORS
- **Симптомы**: Ошибки в браузере, но работает в API
- **Проверка**: Посмотрите на Network tab в браузере
- **Решение**: Настройте CORS для бакета
## Диагностика
### Шаг 1: Проверьте API на сервере
```bash
curl http://localhost:3000/api/test-s3
```
### Шаг 2: Проверьте в браузере
1. Откройте `http://localhost:3000/admin/test-s3`
2. Откройте консоль разработчика (F12)
3. Посмотрите на логи S3Status
### Шаг 3: Проверьте сетевые запросы
1. Откройте вкладку Network в DevTools
2. Обновите страницу
3. Найдите запрос к `/api/test-s3`
4. Посмотрите на статус и ответ
## Возможные решения
### Если S3 работает в API, но не в браузере:
1. Проверьте консоль браузера на ошибки JavaScript
2. Убедитесь, что компонент S3Status монтируется
3. Проверьте, нет ли блокировки запросов браузером
### Если S3 не работает вообще:
1. Проверьте подключение к интернету
2. Убедитесь, что сервис s3.twcstorage.ru доступен
3. Проверьте учетные данные
### Если проблема с таймаутом:
1. Увеличьте таймаут в S3Status компоненте
2. Проверьте скорость соединения
3. Попробуйте использовать другой регион S3
## Логи для отладки
Компонент S3Status выводит подробные логи в консоль:
- `S3Status: Проверяю подключение к S3...`
- `S3Status: Результат проверки:` - результат API
- `S3Status: Подключение успешно` - при успехе
- `S3Status: Ошибка подключения:` - при ошибке
- `S3Status: Исключение при проверке:` - при исключении
## Контакты для поддержки
Если проблема не решается:
1. Соберите логи из консоли браузера
2. Проверьте результат `curl http://localhost:3000/api/test-s3`
3. Опишите точные симптомы и шаги воспроизведения