code: async def file_upload(
          request: web.Request, session: UpdateSession) -> web.Response:
      
      if session.stage != Stages.AWAITING_FILE:
          return web.json_response(
              data={'error': 'file-already-uploaded',
                    'message': 'A file has already been sent for this update'},
              status=409)
      reader = await request.multipart()
      async for part in reader:
          if part.name != 'ot2-system.zip':
              LOG.warning(
                  f"Unknown field name {part.name} in file_upload, ignoring")
              await part.release()
          else:
              await _save_file(part, session.download_path)
  
      _begin_validation(
          session,
          config.config_from_request(request),
          asyncio.get_event_loop(),
          os.path.join(session.download_path, 'ot2-system.zip'))
  
      return web.json_response(data=session.state,
                               status=201)
docs: Serves /update/:session/file
  
      Requires multipart (encoding doesn't matter) with a file field in the
      body called 'ot2-system.zip'.