feat: chunk file upload add quest pool

This commit is contained in:
yangshangbo
2025-07-11 16:32:15 +08:00
parent 1f8e9ac11e
commit e362c4ffb5
8 changed files with 1298 additions and 62 deletions
+4 -4
View File
@@ -11,6 +11,7 @@ pub struct ChunkUploadConfig {
pub:
chunk_size int = 1024 * 1024 // 1MB 默认分片大小
max_file_size int = 1024 * 1024 * 1024 // 1GB 最大文件大小
max_chunk_size int = 10 * 1024 * 1024 // 10MB 最大分片大小
temp_dir string = './uploads/chunks' // 临时分片目录(分片保存在 temp_dir/filehash/chunksize/ 下)
upload_dir string = './uploads/files' // 最终文件目录
cleanup_delay int = 3600 // 1小时后清理临时文件
@@ -115,11 +116,10 @@ pub fn (mut manager ChunkUploadManager) handle_chunk_upload(mut ctx Context) htt
}
chunk_size := chunk_size_str.int()
// 验证分片大小(允许更大的分片大小,但不超过10MB)
max_allowed_chunk_size := 10 * 1024 * 1024 // 10MB
if chunk_size > max_allowed_chunk_size {
// 验证分片大小(使用配置中的最大分片大小)
if chunk_size > manager.config.max_chunk_size {
ctx.status(413)
return ctx.json('{"error": "Chunk size too large", "max_chunk_size": "$max_allowed_chunk_size"}')
return ctx.json('{"error": "Chunk size too large", "max_chunk_size": "${manager.config.max_chunk_size}"}')
}
// 获取文件数据