这是一个使用 Python FastAPI 构建的异步图片托管服务。它提供了多个第三方图床接口用于上传图片,并提供了 API 来管理图片、相册、标签和用户。
- 异步处理: 基于
asyncio和FastAPI实现高性能的异步请求处理。 - 多图床接口: 集成了多个图床接口 (百度百家号, 京东, 美团, TCL)。
- API 管理: 提供 RESTful API 用于管理图片、相册、标签和用户。
- 数据库支持: 使用 SQLAlchemy 进行数据持久化 (需要配置数据库)。
- Web 界面: 包含一个简单的前端界面 (位于
static/dist)。
-
克隆仓库:
git clone <your-repository-url> cd imagehost_async
-
创建虚拟环境 (推荐):
python -m venv venv # Windows .\venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
安装依赖:
pip install -r requirements.txt
-
配置环境变量: 复制
.env.example(如果存在) 或创建一个.env文件,并根据需要配置数据库连接字符串等环境变量。至少需要配置DATABASE_URL。DATABASE_URL="postgresql+asyncpg://user:password@host:port/dbname" # 或者其他 SQLAlchemy 支持的数据库 URL # 其他可能的配置... SECRET_KEY="your_secret_key"
-
初始化数据库: (如果
app/init_db.py提供了初始化逻辑)python app/init_db.py
或者,如果使用 Alembic 等迁移工具,请按照其说明操作。
使用 uvicorn 运行 FastAPI 应用:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000--reload: 开发模式下启用自动重载。--host 0.0.0.0: 允许从本地网络访问。--port 8000: 指定服务运行的端口。
服务启动后,您可以访问:
- API 文档 (Swagger UI):
http://localhost:8000/docs - API 文档 (ReDoc):
http://localhost:8000/redoc - 前端界面:
http://localhost:8000/(如果静态文件服务已正确配置)
主要 API 端点包括:
/api/v1/users/: 用户管理/api/v1/images/: 图片上传和管理/api/v1/albums/: 相册管理/api/v1/tags/: 标签管理/api/v1/interfaces/: 图床接口信息/api/v1/image-url/: 通过 URL 上传图片
详细信息请参阅 API 文档 (/docs)。
欢迎提交 Pull Requests 或 Issues。
(如果需要,请添加许可证信息,例如 MIT, Apache 2.0 等)