Open bryant24 opened 7 years ago
@bryant24 首先,我这个代码是玩具。然后说原因:io是阻塞的,因为分片多合并时间久就会出现这个问题,你可以参考迅雷下载的原理,先通过上传文件的总大小生成一个空文件,然后分片上传的时候按对应的偏移量位置写入即可。
你好,文件分片的最后一片上传完后,该合并了,很大几率会出现这个错误: [error] 7379#7379: *228 lua tcp socket read timed out... 结果是合并失败了,已经设置NGINX lua_socket_read_timeout 1h,还是不行 location /file_upload { lua_socket_read_timeout 3600s; client_max_body_size 10G; default_type text/html; content_by_lua_file lua/upload.lua; }
还有一个方法,文件就分片传,最后也不合并,读取的时候一片一片依次读。
合并分片可以放到ngx.timer.at里执行,不会有超时问题,测试可用,不过合并完成后不知道怎么通知前台……
你好,文件分片的最后一片上传完后,该合并了,很大几率会出现这个错误: [error] 7379#7379: *228 lua tcp socket read timed out... 结果是合并失败了,已经设置NGINX lua_socket_read_timeout 1h,还是不行 location /file_upload { lua_socket_read_timeout 3600s; client_max_body_size 10G; default_type text/html; content_by_lua_file lua/upload.lua; }