Loading...
Loading...
Compare original and translation side by side
undefinedundefined
┌─────────┐ ┌──────────┐ ┌─────────────┐
│ Client │─────▶│ API │─────▶│ Upload │
│ │ │ Gateway │ │ Service │
└─────────┘ └──────────┘ └─────────────┘
│
▼
┌─────────────┐
│ Storage │
│ (S3) │
└─────────────┘
│
▼
┌─────────────┐
│ Processing │◀─┐
│ Queue │ │
└─────────────┘ │
│ │
▼ │
┌─────────────┐ │
│ Processor │─┘
│ Workers │
└─────────────┘
│
▼
┌─────────────┐
│Notification │
│ Service │
└─────────────┘
┌─────────┐ ┌──────────┐ ┌─────────────┐
│ 客户端 │─────▶│ API网关 │─────▶│ 上传服务 │
│ │ │ │ │
└─────────┘ └──────────┘ └─────────────┘
│
▼
┌─────────────┐
│ 存储服务 │
│ (S3) │
└─────────────┘
│
▼
┌─────────────┐
│ 处理队列 │◀─┐
│ │ │
└─────────────┘ │
│ │
▼ │
┌─────────────┐ │
│ 处理工作节点 │─┘
│ │
└─────────────┘
│
▼
┌─────────────┐
│通知服务 │
│ │
└─────────────┘
POST /uploads
Request: { filename, size, content_type }
Response: { upload_url, upload_id }
POST /uploads
请求体: { filename, size, content_type }
响应体: { upload_url, upload_id }
/uploads/{user_id}/{upload_id}/original.mp4
/processed/{user_id}/{upload_id}/output.mp4
/uploads/{user_id}/{upload_id}/original.mp4
/processed/{user_id}/{upload_id}/output.mp4
interface Upload {
id: string;
user_id: string;
filename: string;
size: number;
status: 'pending' | 'processing' | 'complete' | 'failed';
original_url: string;
processed_url?: string;
created_at: Date;
processed_at?: Date;
}
interface ProcessingJob {
upload_id: string;
attempts: number;
error?: string;
}interface Upload {
id: string;
user_id: string;
filename: string;
size: number;
status: 'pending' | 'processing' | 'complete' | 'failed';
original_url: string;
processed_url?: string;
created_at: Date;
processed_at?: Date;
}
interface ProcessingJob {
upload_id: string;
attempts: number;
error?: string;
}POST /uploads - Request upload URL
GET /uploads/:id - Get upload status
DELETE /uploads/:id - Cancel upload
GET /uploads - List user uploadsPOST /uploads - 请求上传URL
GET /uploads/:id - 获取上传状态
DELETE /uploads/:id - 取消上传
GET /uploads - 列出用户所有上传记录POST {webhook_url}
{
"event": "upload.completed",
"upload_id": "...",
"status": "complete",
"processed_url": "..."
}POST {webhook_url}
{
"event": "upload.completed",
"upload_id": "...",
"status": "complete",
"processed_url": "..."
}undefinedundefinedundefinedundefinedinterface ComponentAPI {
method(params): ReturnType;
}undefinedinterface ComponentAPI {
method(params): ReturnType;
}undefinedundefinedundefined