Commit 34778ed818ed3fea1ebc4d8f80e82e19fd4beb74

Authored by Miguel Barao
1 parent 3586cfab
Exists in master and in 1 other branch dev

FileHandler now serves the complete file instead of chunks.

Showing 1 changed file with 17 additions and 12 deletions   Show diff stats
serve.py
... ... @@ -182,7 +182,9 @@ class TopicHandler(BaseHandler):
182 182 # Based on https://bhch.github.io/posts/2017/12/serving-large-files-with-tornado-safely-without-blocking/
183 183 # ----------------------------------------------------------------------------
184 184 class FileHandler(BaseHandler):
185   - chunk_size = 4 * 1024 * 1024 # serve up to 4 MiB multiple times
  185 + SUPPORTED_METHODS = ['GET']
  186 +
  187 + # chunk_size = 4 * 1024 * 1024 # serve up to 4 MiB multiple times
186 188  
187 189 @tornado.web.authenticated
188 190 async def get(self, filename):
... ... @@ -203,17 +205,20 @@ class FileHandler(BaseHandler):
203 205 # divide the file into chunks and write one chunk at a time, so
204 206 # that the write does not block the ioloop for very long.
205 207 with f:
206   - chunk = f.read(self.chunk_size)
207   - while chunk:
208   - try:
209   - self.write(chunk) # write the chunk to response
210   - await self.flush() # flush the current chunk to socket
211   - except iostream.StreamClosedError:
212   - break # client closed the connection
213   - finally:
214   - del chunk
215   - await asyncio.sleep(0) # 1 nanosecond (hack)
216   - chunk = f.read(self.chunk_size)
  208 + self.write(f.read())
  209 + await self.flush()
  210 +
  211 + # chunk = f.read(self.chunk_size)
  212 + # while chunk:
  213 + # try:
  214 + # self.write(chunk) # write the chunk to response
  215 + # await self.flush() # flush the current chunk to socket
  216 + # except iostream.StreamClosedError:
  217 + # break # client closed the connection
  218 + # finally:
  219 + # del chunk
  220 + # await asyncio.sleep(0) # 1 nanosecond (hack)
  221 + # chunk = f.read(self.chunk_size)
217 222  
218 223  
219 224 # ----------------------------------------------------------------------------
... ...