task-65: transient payload 读取流式解压 + 解压后字节上限
- 新增 aiimage.transient-storage.max-decompressed-payload-bytes 配置 (默认 100MB,即 2x 存储上限),覆盖 gzip 二进制与 gzip64 兼容两条路径 - decodeGzipStream 按 8KB 缓冲流式解压,累计输出超过上限立即中止并报错, 防止压缩炸弹(zip bomb)在读取时无界膨胀内存 - 超限错误保留可识别消息(exceeds configured limit),由 resolvePayload 统一包装
This commit is contained in:
@@ -37,6 +37,11 @@ public class TransientStorageProperties {
|
||||
private long warnPayloadBytes = 5L * 1024 * 1024;
|
||||
private long maxPayloadBytes = 50L * 1024 * 1024;
|
||||
private long maxStoredPayloadBytes = 50L * 1024 * 1024;
|
||||
/**
|
||||
* 读取端解压后字节上限:防止压缩炸弹(zip bomb)在流式解压时无界膨胀内存。
|
||||
* 默认 2x 存储上限,覆盖 gzip 二进制路径与 gzip64 兼容路径。
|
||||
*/
|
||||
private long maxDecompressedPayloadBytes = 100L * 1024 * 1024;
|
||||
private boolean fallbackToLocalOnOversize = true;
|
||||
private boolean deleteRetryEnabled = true;
|
||||
private String deleteRetryCron = "0 */5 * * * *";
|
||||
|
||||
Reference in New Issue
Block a user