mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-28 21:14:03 +08:00
feat(http): decouple upload size limit from maxReqSize and harden file upload (#4780)
- Add maxUploadSize config (default 1GB) for custom HttpBody streaming uploads; maxReqSize now only controls in-memory buffering threshold - Reject uploads exceeding maxUploadSize with 413 before writing any data - Delete incomplete files on HttpFileStorage destruction - Open HttpFileStorage in "wb" mode instead of "ab" to avoid stale data - Pass content_size to writeData() for integrity validation - Use uint64_t for content_len to support large file uploads - Wrap HttpBody _on_completed callback in try-catch to prevent unhandled exceptions - Make GET_CONFIG global variables read-only - Update ZLToolKit submodule --------- Co-authored-by: xiongziliang <771730766@qq.com>
This commit is contained in:
@@ -191,6 +191,7 @@ namespace Http {
|
||||
#define HTTP_FIELD "http."
|
||||
const string kSendBufSize = HTTP_FIELD "sendBufSize";
|
||||
const string kMaxReqSize = HTTP_FIELD "maxReqSize";
|
||||
const string kMaxUploadSize = HTTP_FIELD "maxUploadSize";
|
||||
const string kKeepAliveSecond = HTTP_FIELD "keepAliveSecond";
|
||||
const string kCharSet = HTTP_FIELD "charSet";
|
||||
const string kRootPath = HTTP_FIELD "rootPath";
|
||||
@@ -205,6 +206,7 @@ const string kAllowIPRange = HTTP_FIELD "allow_ip_range";
|
||||
static onceToken token([]() {
|
||||
mINI::Instance()[kSendBufSize] = 64 * 1024;
|
||||
mINI::Instance()[kMaxReqSize] = 4 * 10240;
|
||||
mINI::Instance()[kMaxUploadSize] = 1024ULL * 1024 * 1024;
|
||||
mINI::Instance()[kKeepAliveSecond] = 15;
|
||||
mINI::Instance()[kDirMenu] = true;
|
||||
mINI::Instance()[kVirtualPath] = "";
|
||||
|
||||
Reference in New Issue
Block a user