ذخیره‌سازی تصاویر با MinIO (S3) و انتهای‌نقطه آپلود ادمین

- POST /api/admin/upload با احراز هویت JWT: ذخیره فایل در باکت S3 و
  برگرداندن URL نسبی /media/<سال>/<ماه>/<uuid>.<پسوند>
- فرمت‌های مجاز: jpg، png، webp، gif، avif — حداکثر ۱۰ مگابایت (قابل تنظیم)
- افزودن boto3 و python-multipart به وابستگی‌ها
- تنظیمات جدید: S3_ENDPOINT، S3_ACCESS_KEY، S3_SECRET_KEY، S3_BUCKET،
  MEDIA_PUBLIC_BASE، MEDIA_MAX_UPLOAD_MB (قابل تعریف در .env)
- URL نسبی برمی‌گردد تا بک‌اند ذخیره‌سازی (MinIO/R2/هر S3) بدون تغییر
  محتوای دیتابیس قابل تعویض باشد
- به‌روزرسانی .env.example و README (بخش تصاویر و MinIO)
This commit is contained in:
MMD
2026-09-06 20:49:01 +03:30
parent 1fde4e30fc
commit 897fac4f15
5 changed files with 97 additions and 4 deletions
+12
View File
@@ -15,3 +15,15 @@ CORS_ORIGINS=["http://localhost:5173","http://127.0.0.1:5173"]
# مشخصات ادمین پیش‌فرض که هنگام seed ساخته می‌شود
ADMIN_USERNAME=admin
ADMIN_PASSWORD=aramesh123
# Object Storage (MinIO) برای آپلود تصاویر پنل مدیریت
S3_ENDPOINT=http://localhost:9000
S3_ACCESS_KEY=aramesh
S3_SECRET_KEY=change-me-minio-secret
S3_BUCKET=aramesh-media
# پیشوند عمومی مسیر تصاویر — پروکسی Reverse باید آن را به باکت برساند
MEDIA_PUBLIC_BASE=/media
# حداکثر حجم آپلود تصویر (مگابایت)
MEDIA_MAX_UPLOAD_MB=10