add: README.md
This commit is contained in:
101
README.md
Normal file
101
README.md
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
# ImageProxy
|
||||||
|
|
||||||
|
ImageProxy 是一个高性能的图片代理服务,它能够自动下载、调整大小并优化图片,同时支持 WebP 格式转换。这个服务特别适合用于优化网站图片加载性能。
|
||||||
|
|
||||||
|
## 功能特点
|
||||||
|
|
||||||
|
- 支持 HTTP/HTTPS 图片源
|
||||||
|
- 自动调整图片大小
|
||||||
|
- 转换为 WebP 格式以减小文件大小
|
||||||
|
- 支持自定义最大尺寸
|
||||||
|
- 详细的性能指标输出
|
||||||
|
- 内置 CORS 支持
|
||||||
|
- 长期缓存支持
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- Rust
|
||||||
|
- Axum (Web 框架)
|
||||||
|
- Tokio (异步运行时)
|
||||||
|
- image-rs (图片处理)
|
||||||
|
- libwebp (WebP 转换)
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
### 使用 Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -p 2999:2999 your-imageproxy-image
|
||||||
|
```
|
||||||
|
|
||||||
|
### 从源码构建
|
||||||
|
|
||||||
|
1. 确保已安装 Rust 工具链
|
||||||
|
2. 克隆仓库
|
||||||
|
3. 构建项目:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo build --release
|
||||||
|
```
|
||||||
|
|
||||||
|
4. 运行服务:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./target/release/imageproxy
|
||||||
|
```
|
||||||
|
|
||||||
|
## 使用方法
|
||||||
|
|
||||||
|
### 基本用法
|
||||||
|
|
||||||
|
```
|
||||||
|
http://your-server:2999/https://example.com/image.jpg
|
||||||
|
```
|
||||||
|
|
||||||
|
### 调整最大尺寸
|
||||||
|
|
||||||
|
```
|
||||||
|
http://your-server:2999/max_size/500/https://example.com/image.jpg
|
||||||
|
```
|
||||||
|
|
||||||
|
## 响应头信息
|
||||||
|
|
||||||
|
服务会在响应中包含以下有用的头信息:
|
||||||
|
|
||||||
|
- `Content-Type`: 始终为 `image/webp`
|
||||||
|
- `Cache-Control`: 设置为长期缓存
|
||||||
|
- `X-Original-Content-Type`: 原始图片的 Content-Type
|
||||||
|
- `X-Original-Size`: 原始图片大小(字节)
|
||||||
|
- `X-Original-Width`: 原始图片宽度
|
||||||
|
- `X-Original-Height`: 原始图片高度
|
||||||
|
- `X-Output-Max-Size`: 输出图片的最大尺寸
|
||||||
|
- `X-Converted-Size`: 转换后的图片大小
|
||||||
|
- `X-Download-Time`: 下载耗时(毫秒)
|
||||||
|
- `X-Resize-Time`: 调整大小耗时(毫秒)
|
||||||
|
- `X-Convert-Time`: 转换耗时(毫秒)
|
||||||
|
|
||||||
|
## 限制
|
||||||
|
|
||||||
|
- 最大支持下载 10MB 的图片
|
||||||
|
- 仅支持图片格式的输入
|
||||||
|
- 输出格式固定为 WebP
|
||||||
|
|
||||||
|
## 环境变量
|
||||||
|
|
||||||
|
- `LISTEN`: 监听地址和端口(默认:0.0.0.0:2999)
|
||||||
|
- `RUST_LOG`: 日志级别(默认:info)
|
||||||
|
|
||||||
|
## 性能优化
|
||||||
|
|
||||||
|
- 使用 WebP 格式进行高效压缩
|
||||||
|
- 支持异步处理
|
||||||
|
- 内置缓存控制
|
||||||
|
- 优化的图片处理算法
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
[待定]
|
||||||
|
|
||||||
|
## 贡献
|
||||||
|
|
||||||
|
欢迎提交 Issue 和 Pull Request!
|
||||||
Reference in New Issue
Block a user