Các thông tin kết nối khác của "Video Upload S3"
Các thông tin .env kết nối khác
# Server Configuration
SERVER_PORT=8081
SESSION_SECRET=change-me-in-production
# Video Processing
TEMP_DIR=./temp
UPLOAD_DIR=./uploads
# Upload/Transcode Settings
MAX_CONCURRENT_UPLOADS=2
UPLOAD_QUEUE_SIZE=50
MAX_CONCURRENT_TRANSCODES=2
TRANSCODE_QUEUE_SIZE=50
# S3 Upload Settings
S3_UPLOADER_CONCURRENCY=2
S3_UPLOAD_MAX_RETRIES=3
S3_UPLOAD_BASE_DELAY_MS=500
S3_UPLOAD_MAX_DELAY_MS=8000
# Upload/Download Retry Settings
UPLOAD_DOWNLOAD_MAX_RETRIES=3
UPLOAD_DOWNLOAD_BASE_DELAY_MS=800
UPLOAD_DOWNLOAD_MAX_DELAY_MS=12000
Chú thích rõ:
Nguồn cấu hình
- API: Đọc trong config/config.go khi gọi LoadConfig() (file .env hoặc biến hệ thống).
- Worker: Đọc trực tiếp env trong cmd/worker/main.go cho nhóm S3 và retry tải — không dùng config.AppConfig.
1. Hàng đợi upload và transcode (chủ yếu API)
| Biến | Ý nghĩa |
|---|---|
| MAX_CONCURRENT_UPLOADS | Số worker xử lý ProcessUpload song song. Giá trị ≤ 0 được ép tối thiểu 2. |
| UPLOAD_QUEUE_SIZE | Độ sâu buffer hàng đợi. Hết chỗ → upload failed (Upload queue is full…). |
| MAX_CONCURRENT_TRANSCODES | Số worker transcode HLS (ProcessVideoToHLS) song song. ≤ 0 → tối thiểu 2. |
| TRANSCODE_QUEUE_SIZE | Buffer hàng đợi job transcode. |
Gợi ý: Tăng MAX_* khi đủ tài nguyên; tăng *_QUEUE_SIZE để chịu burst (có thể chờ lâu hơn).
2. S3 (có hiệu lực rõ trên Worker)
| Biến | Worker | API (web) |
|---|---|---|
| S3_UPLOADER_CONCURRENCY | Có: Uploader.Concurrency và giới hạn upload file HLS song song. | Nạp AppConfig nhưng UploadHLS/UploadFile không dùng buildUploader → gần như không áp dụng. |
| S3_UPLOAD_MAX_RETRIES | Có: aws.Config.MaxRetries (SDK). | Helper có nhưng không gắn vào luồng upload hiện tại. |
| S3_UPLOAD_BASE_DELAY_MS, S3_UPLOAD_MAX_DELAY_MS | Backoff S3 riêng không dùng; tải chung dùng UPLOAD_DOWNLOAD_*. | Trong config/helper nhưng không được gọi bởi UploadHLS/UploadFile. |
Tóm lại: Chỉnh S3_* trong .env của worker để tác động upload S3 và retry SDK.
3. Retry tải / mạng (API và Worker)
| Biến | Ý nghĩa |
|---|---|
| UPLOAD_DOWNLOAD_MAX_RETRIES | Vòng 0…MaxRetries → tối đa MaxRetries + 1 lần thử (ví dụ 3 → 4 lần). |
| UPLOAD_DOWNLOAD_BASE_DELAY_MS | Độ trễ cơ sở; backoff base × 2^attempt, có trần. |
| UPLOAD_DOWNLOAD_MAX_DELAY_MS | Trần thời gian chờ giữa các lần thử. |
- API (upload_service.go): tải nguồn, retry lỗi tạm thời.
- Worker (retryOperation): backoff tương tự, log Retrying … attempt.
4. Checklist nhanh
- API: song song và hàng đợi upload/transcode; retry tải nguồn.
- Worker: S3_UPLOADER_CONCURRENCY, S3_UPLOAD_MAX_RETRIES; UPLOAD_DOWNLOAD_* cho retry chung.
- Lưu ý: Căn chỉnh MAX_CONCURRENT_TRANSCODES đúng process và file .env của binary đang chạy.