基于 Flask 的 OSS 文件上传与 URL 转换服务。
- 文件上传:支持任意文件上传至 S3 兼容存储(如 Alist),返回预签名下载链接
- URL 批量转换:自动识别文本中的所有 URL,下载资源并上传至 OSS,批量替换为新地址
- 实时进度:异步处理,支持实时查询转换进度
- 复制环境变量模板并配置:
cp .env.example .env- 编辑
.env文件,填写你的 OSS 配置:
ALIST_ENDPOINT=https://your-s3-endpoint.com
ALIST_ACCESS_KEY=your-access-key
ALIST_SECRET_KEY=your-secret-key
ALIST_BUCKET=your-bucket-name
URL_EXPIRES=3600- 启动服务:
docker compose up -d# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 设置环境变量
export ALIST_ENDPOINT=...
export ALIST_ACCESS_KEY=...
export ALIST_SECRET_KEY=...
export ALIST_BUCKET=...
# 运行
python app.py服务将运行在 http://localhost:5001
POST /upload_file
Content-Type: multipart/form-data
参数: file (文件)
响应:
{
"code": 200,
"data": {
"url": "https://...",
"filename": "example.jpg",
"object_key": "uploads/..."
}
}
POST /convert_url
Content-Type: application/json
参数: {"text": "包含 URL 的文本..."}
响应:
{
"code": 200,
"data": {
"task_id": "uuid",
"total": 5,
"urls": [...],
"converted_text": "..."
}
}
GET /progress/<task_id>
响应:
{
"code": 200,
"data": {
"task_id": "uuid",
"total": 5,
"completed": 3,
"converted_text": "...",
"urls": [...]
}
}
- Python 3.12+
- Flask 2.3+
- boto3 (S3 兼容存储)
- Docker
MIT