версия Python: 3.8.10
запрашивает версию: 2.32.3
пример кода:
Код: Выделить всё
start = datetime.now()
requests.get(URL_WITH_1GB_FILE, params=None, headers={"User-Agent": "Mozilla/5.0"}, timeout=(1,1), verify=cert)
print(f"GET: {datetime.now()-start}")
Однако при попытке выполнить ту же операцию с запросом PUT время ожидания запроса истекает, если только время ожидания соединения превышает время, необходимое для завершения всего запроса PUT.
пример кода:
Код: Выделить всё
with open(PATH_TO_1GB_FILE ,"rb" ) as f:
dat = f.read()
timeouts = (100, 1) # connect, read
start = datetime.now()
requests.put(f"{local}/puttest", params=None, headers={"User-Agent": "Mozilla/5.0"}, timeout=timeouts, data=dat, verify=cert)
print(f"PUT: {datetime.now()-start}")
Я загружаю файлы размером 100 МБ при подключении со скоростью 1 Мбит/с, для чего потребуется тайм-аут в 13 минут, однако я хочу, чтобы тайм-аут сработал намного раньше, если соединение с Интернетом прервется.
Я знаю, что могу этого добиться. отправляя меньшие фрагменты вместо полного файла размером 100 МБ, но было любопытно, есть ли способ, чтобы таймауты лучше справлялись с этой ситуацией.
Подробнее здесь: https://stackoverflow.com/questions/792 ... uests-dont
Мобильная версия