vGo.codes

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_UPLOADSSố 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_TRANSCODESSố worker transcode HLS (ProcessVideoToHLS) song song. ≤ 0 → tối thiểu 2.
TRANSCODE_QUEUE_SIZEBuffer 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ếnWorkerAPI (web)
S3_UPLOADER_CONCURRENCYCó: 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_RETRIESCó: 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_MSBackoff 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_RETRIESVò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_MSTrầ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.