From d53d2536202cd57e8e1fc64d67ba31741562b07e Mon Sep 17 00:00:00 2001 From: Alexander Zhou Date: Fri, 27 May 2022 11:49:42 +0800 Subject: [PATCH] Eliminated several seconds of delay when loading big mp4 file --- src/kemal/helpers/helpers.cr | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/kemal/helpers/helpers.cr b/src/kemal/helpers/helpers.cr index bf212a2..11a6b62 100644 --- a/src/kemal/helpers/helpers.cr +++ b/src/kemal/helpers/helpers.cr @@ -216,20 +216,7 @@ private def multipart(file, env : HTTP::Server::Context) env.response.headers["Accept-Ranges"] = "bytes" env.response.headers["Content-Range"] = "bytes #{startb}-#{endb}/#{fileb}" # MUST - if startb > 1024 - skipped = 0_i64 - # file.skip only accepts values less or equal to 1024 (buffer size, undocumented) - until (increase_skipped = skipped + 1024_i64) > startb - file.skip(1024) - skipped = increase_skipped - end - if (skipped_minus_startb = skipped - startb) > 0 - file.skip skipped_minus_startb - end - else - file.skip(startb) - end - + file.seek(startb) IO.copy(file, env.response, content_length) else env.response.content_length = fileb