114 lines
2.7 KiB
Markdown
114 lines
2.7 KiB
Markdown
|
|
# Исправление ошибки 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!
|
|||
|
|
|
|||
|
|
|