ImageProxy/README.md
2025-04-14 17:13:00 +08:00

77 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 图片代理与缓存系统
这是一个用于代理和缓存远程图片的系统,主要功能包括:
1. 图片代理通过URL参数获取远程图片并返回
2. 图片缓存:自动缓存已访问的图片,提高访问速度
3. 防盗链支持支持设置Referer解决部分网站的防盗链问题
## 使用方法
在浏览器中访问:
```
/index.php?url=https://example.com/image.jpg
```
## 参数说明
- url: 必填参数需要代理的远程图片URL
## 技术特点
- 支持多种图片格式GIF、JPEG、PNG、WebP、BMP、SVG
- 自动创建缓存目录结构
- 支持HTTPS图片获取
- 自动处理重定向
- 合理的超时设置
- 完善的错误处理和日志记录
- 图片数据验证
- 缓存过期控制
## 安全特性
- 输入验证确保URL以http或https开头
- 文件类型验证:只允许特定图片格式
- 目录权限控制:缓存目录权限设置
- SSL验证支持HTTPS图片获取
- 图片数据验证:验证下载的图片数据是否有效
- 错误处理:完善的错误处理和日志记录
## 性能优化
- 图片缓存机制24小时缓存
- 合理的超时设置
- 内存使用优化
- 并发处理能力
- 缓存控制头:支持浏览器缓存
## 文件说明
- `index.php`: 入口文件,处理请求
- `ImageProxy.php`: 核心类文件,实现图片代理和缓存功能
- `cache/`: 缓存目录
- `cache/logs/`: 日志目录
## 配置说明
可以通过修改`index.php`中的配置参数来调整系统行为:
```php
$proxy = new ImageProxy([
'cache_dir' => 'cache', // 缓存目录
'timeout' => 30, // 请求超时时间(秒)
'connect_timeout' => 15, // 连接超时时间(秒)
'max_redirects' => 5 // 最大重定向次数
]);
```
## 错误处理
系统会自动记录所有错误到日志文件中,日志文件位于`cache/logs/`目录下,按日期命名。
## 注意事项
1. 确保服务器有足够的磁盘空间用于缓存
2. 确保缓存目录有写入权限
3. 建议定期清理缓存文件
4. 建议监控日志文件大小