“视频上传 S3”的其他连接信息
其他 .env 连接信息
# 服务器配置
SERVER_PORT=8081
SESSION_SECRET=change-me-in-production
# 视频处理
TEMP_DIR=./temp
UPLOAD_DIR=./uploads
# 上传/转码设置
MAX_CONCURRENT_UPLOADS=2
UPLOAD_QUEUE_SIZE=50
MAX_CONCURRENT_TRANSCODES=2
TRANSCODE_QUEUE_SIZE=50
# S3 上传设置
S3_UPLOADER_CONCURRENCY=2
S3_UPLOAD_MAX_RETRIES=3
S3_UPLOAD_BASE_DELAY_MS=500
S3_UPLOAD_MAX_DELAY_MS=8000
# 上传/下载重试设置
UPLOAD_DOWNLOAD_MAX_RETRIES=3
UPLOAD_DOWNLOAD_BASE_DELAY_MS=800
UPLOAD_DOWNLOAD_MAX_DELAY_MS=12000
注释:
配置来源
- API: 在调用 LoadConfig() 时从 config/config.go 中读取 ( .env 文件或系统变量)。
- Worker: 直接在 cmd/worker/main.go 中读取 env 用于 S3 组和重试加载— 不 使用 config.AppConfig。
1. 上传和转码队列(主要 API)
| 变量 | 含义 |
|---|---|
| MAX_CONCURRENT_UPLOADS | 同时处理 ProcessUpload 的 worker 数量。值 ≤ 0 被强制最小 2. |
| UPLOAD_QUEUE_SIZE | 队列 buffer 的深度。用尽 → 上传失败(上传队列已满…. |
| MAX_CONCURRENT_TRANSCODES | 同时进行中的 HLS 转码 worker 数量 (ProcessVideoToHLS)。≤ 0 → 最小值2. |
| TRANSCODE_QUEUE_SIZE | 转码作业队列缓冲区。 |
提示:如果资源足够,请增加 MAX_*;增加 *_QUEUE_SIZE 以处理突发流量(可能需要更长的等待时间)。
2. S3(对 Worker 有明显影响)
| 变量 | Worker | API (web) |
|---|---|---|
| S3_UPLOADER_CONCURRENCY | 有:Uploader.Concurrency 和 HLS 文件并行上传限制。 | 加载 AppConfig,但 UploadHLS/UploadFile 不使用 buildUploader → 几乎不适用。 |
| S3_UPLOAD_MAX_RETRIES | 有:aws.Config.MaxRetries (SDK)。 | Helper 有,但未附加到当前的上传线程。 |
| S3_UPLOAD_BASE_DELAY_MS, S3_UPLOAD_MAX_DELAY_MS | 单独的 S3 backoff 未使用;通用加载使用 UPLOAD_DOWNLOAD_ *。 | 在 config/helper 中,但未由 UploadHLS/UploadFile 调用。 |
总之:在 worker 的 .env 中调整 S3_* 以影响 S3 上传和 SDK 重试。
3. 重试加载/网络 (API 和 Worker)
| 变量 | 含义 |
|---|---|
| UPLOAD_DOWNLOAD_MAX_RETRIES | 循环 0…MaxRetries → 最多 MaxRetries + 1 次尝试(例如 3 → 4 次)。 |
| UPLOAD_DOWNLOAD_BASE_DELAY_MS | 基础延迟;backoff base × 2^attempt,有上限。 |
| UPLOAD_DOWNLOAD_MAX_DELAY_MS | 重试之间的最大等待时间。 |
- API (upload_service.go):加载源,重试瞬时错误。
- 工人 (retryOperation): 类似退避,日志 重试… 尝试.
4. 快速检查清单
- API: 并行和上传/转码队列;重试加载源。
- 工人: S3_UPLOADER_CONCURRENCY, S3_UPLOAD_MAX_RETRIES; UPLOAD_DOWNLOAD_* 用于通用重试。
- 注意: 将 MAX_CONCURRENT_TRANSCODES 与正在运行的二进制文件的 process 和 .env 文件对齐。