Как я могу исправить проблему между aiohttp и IDM для загрузки и потокового файла? - PullRequest
0 голосов
/ 30 октября 2019

Я хочу передать мультимедийный файл через aiohttp framework (в python 3.7) и загрузить его одновременно с возможностью возобновления в IDM. Путь к файлу указан, и заголовки также установлены. Я использовал partial content и Content-Range, чтобы активировать возможность возобновления в IDM

Файл хорошо потоковый, но у меня проблема с IDM при загрузке Проблема здесь при загрузке с IDMЯ нажимаю кнопку Pause, которую хочу перезапустить и продолжить загрузку, но она начинает загрузку с 0%. Это сделало невозможным для меня использование resume capability безупречной и полной, существующей в IDM. Я хочу загрузить файл с IDM, когда я нажимаю кнопку паузы, она приостанавливает загрузку, а когда я снова нажимаю кнопку пуска, она продолжает загрузку с того места, где она была приостановлена.

Я использовал следующий код для загрузкии потоковый файл, написанный с aiohttp framework

@routes.get('/')
async def handle(request):
    offset = 0
    if 'Range' in dict(request.headers):
        offset =int(hh['Range'][6:].split('-')[0])
    with open(filepath, 'rb') as f:
        resp = Response(status=206,
                              headers={'Content-Type': mimetypes.guess_type(filename)[0],
                                       'CONTENT-LENGTH': str(file_size),
                                       'Accept-Ranges': 'bytes',
                                       'CONNECTION': 'keep-alive',
                                       'Content-Range': 'bytes %d - %d/%d' % (offset, file_size, size)
                                       },
                              )

        data = f.read()
        await resp.prepare(request)
        await resp.write(data)
        return resp

app = web.Application()
app.add_routes(routes)
web.run_app(app,host='0.0.0.0')
...