Image Processing API 是一个基于 FastAPI 的图片处理服务,支持图片压缩、加密别名生成、随机图片获取等功能,并通过 SQLite 数据库存储图片信息。该项目旨在提供一个高效、可扩展的图片处理解决方案。
项目地址https://github.com/BorderRegion/Random_Image_API
特性
- 图片压缩: 支持将图片压缩为指定质量(默认 75),并转换为 JPEG 格式。
- 加密别名生成: 使用 SHA-256 哈希算法生成图片的加密别名,确保文件名唯一且安全。
- 随机图片获取: 提供
/random_image接口,用户可随机获取一张已处理的图片。 - 别名图片获取: 提供
/image_get/{alias}接口,用户可通过别名获取指定图片。 - 速率限制: 支持单 IP 请求速率限制,防止恶意请求。
- HTTPS 强制: 可配置强制使用 HTTPS 协议。
- 动态配置: 使用 YAML 文件进行配置管理,灵活调整参数。
1. 获取随机图片
- URL:
/random_image - Method:
GET - Response:
- 成功: 返回随机图片(JPEG 格式)。
- 失败: 返回 JSON 错误信息。
2. 根据别名获取图片
- URL:
/image_get/{alias} - Method:
GET - Response:
- 成功: 返回指定别名的图片(JPEG 格式)。
- 失败: 返回 JSON 错误信息。
3.速率限制与 HTTPS 强制
- 如果单 IP 在指定时间窗口内超过最大请求数(
rateLimit),将返回429 Too Many Requests。 - 如果启用了
strict_https,所有 HTTP 请求将被重定向到 HTTPS。
日志记录
日志信息会同时输出到控制台和文件 api.log 中,方便调试和监控。
示例日志格式:
2023-10-01 12:00:00 - INFO - 开始初始化 API...
2023-10-01 12:00:01 - INFO - 数据库连接成功
2023-10-01 12:00:02 - INFO - 端口可用
2023-10-01 12:00:03 - INFO - 文件夹已创建: Processed
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
