mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
refactor(compression): 请求压缩策略改为跟随客户端行为,响应支持gzip压缩
- 移除全局 ENABLE_REQUEST_COMPRESSION 配置,改为根据客户端 Content-Encoding 决定是否对上游请求体进行 gzip 压缩 - 非流式响应根据客户端 Accept-Encoding 返回 gzip 压缩的 JSON - ApiRequestContext 记录客户端编码偏好并透传至 handler 链路 - 新增 http_compression 模块统一处理压缩相关判断逻辑 - 上游请求头丢弃列表新增 content-encoding 防止客户端值泄露 - ensure_json_body 支持解压 gzip 编码的请求体
This commit is contained in:
@@ -182,16 +182,6 @@ class Config:
|
||||
# - 三家上游(Claude/OpenAI/Gemini)均已确认支持 HTTP/2
|
||||
# - 出现兼容性问题时可通过环境变量快速回退到 HTTP/1.1
|
||||
self.enable_http2 = os.getenv("ENABLE_HTTP2", "true").lower() == "true"
|
||||
# ENABLE_REQUEST_COMPRESSION: 是否对上游请求体启用 gzip 压缩
|
||||
# - 仅对超过 REQUEST_COMPRESSION_MIN_SIZE 的请求体生效
|
||||
# - 上游 Cloudflare/Google Front End 层会透明解压
|
||||
self.enable_request_compression = (
|
||||
os.getenv("ENABLE_REQUEST_COMPRESSION", "true").lower() == "true"
|
||||
)
|
||||
# REQUEST_COMPRESSION_MIN_SIZE: 触发请求体压缩的最小字节数
|
||||
# - gzip 有固定头部开销,小请求压缩后可能反而变大
|
||||
# - 默认 1024 字节(1KB)
|
||||
self.request_compression_min_size = int(os.getenv("REQUEST_COMPRESSION_MIN_SIZE", "1024"))
|
||||
|
||||
# 流式处理配置
|
||||
# STREAM_PREFETCH_LINES: 预读行数,用于检测嵌套错误
|
||||
|
||||
Reference in New Issue
Block a user