nakama/MINIO_403_FIX.md

114 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Исправление ошибки 403 в MinIO
## 🔴 Проблема
```
Failed to load resource: the server responded with a status of 403 ()
```
Это означает, что bucket `nakama-media` не публичный и браузер не может загрузить изображения.
---
## ✅ Быстрое решение (через MinIO Console)
### Шаг 1: Откройте консоль MinIO
```
http://103.80.87.247:9901/
```
### Шаг 2: Войдите
- **Username**: `minioadmin` (или ваш логин)
- **Password**: `minioadmin` (или ваш пароль)
### Шаг 3: Настройте публичный доступ
1. В боковом меню выберите **Buckets**
2. Найдите **nakama-media**
3. Нажмите на имя bucket
4. Перейдите на вкладку **Anonymous**
5. Нажмите **Add Access Rule**
6. Введите префикс: `*` (для всех файлов)
7. Права доступа: выберите **readonly** или **download**
8. Нажмите **Save**
---
## ✅ Альтернатива: Через MinIO Client (mc)
### На сервере с MinIO выполните:
```bash
# Установите mc
curl -O https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
# Настройте подключение
mc alias set myminio http://localhost:9000 minioadmin minioadmin
# Сделайте bucket публичным
mc anonymous set download myminio/nakama-media
# Проверьте
mc anonymous get myminio/nakama-media
```
Должно вывести: `Access permission for 'myminio/nakama-media' is 'download'`
---
## ✅ Автоматический скрипт
```bash
bash fix-minio-public.sh
```
---
## 📝 Проверьте .env
Убедитесь, что в `.env` (в корне проекта) установлено:
```env
MINIO_ENABLED=true
MINIO_ENDPOINT=103.80.87.247
MINIO_PORT=9000
MINIO_USE_SSL=false
MINIO_PUBLIC_BUCKET=true
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=nakama-media
```
---
## 🔄 Перезапустите backend
```bash
docker compose restart backend
```
---
## ✅ Проверка
Откройте в браузере:
```
http://103.80.87.247:9000/nakama-media/posts/test.jpg
```
Если файл существует, он должен загрузиться без ошибок.
---
## 🔧 Если используете Nginx (minio.glpshchn.ru)
Убедитесь, что:
1. **MINIO_ENDPOINT** = `minio.glpshchn.ru`
2. **MINIO_PORT** = `443`
3. **MINIO_USE_SSL** = `true`
4. **MINIO_PUBLIC_URL** = `https://minio.glpshchn.ru`
И перезапустите backend!