Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Проблема с загрузкой zip архив 175Mb. #32

Closed
vv-m opened this issue Sep 28, 2023 · 5 comments
Closed

Проблема с загрузкой zip архив 175Mb. #32

vv-m opened this issue Sep 28, 2023 · 5 comments
Labels
known-problem This is a well known problem language-russian Issue на русском question

Comments

@vv-m
Copy link

vv-m commented Sep 28, 2023

Пытаюсь выгрузить zip архив 175Mb на ЯндексДиск - программа зависает.
Не отдает ни каких исключений. Просто висит.

@vv-m
Copy link
Author

vv-m commented Sep 28, 2023

Дождался наконец исключения

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/main.py", line 64, in
y.upload(path_downloaded_backup, path_downloaded_backup)
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/yadisk/yadisk.py", line 684, in upload
self._upload(self.get_upload_link, file_or_path, dst_path, **kwargs)
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/yadisk/yadisk.py", line 652, in _upload
auto_retry(attempt, n_retries, retry_interval)
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/yadisk/utils.py", line 99, in auto_retry
raise e
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/yadisk/utils.py", line 96, in auto_retry
return func()
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/yadisk/yadisk.py", line 648, in attempt
with contextlib.closing(session.put(link, data=file, **temp_kwargs)) as response:
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/requests/sessions.py", line 649, in put
return self.request("PUT", url, data=data, **kwargs)
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/Users/vladmironov2/Главная/Dev/notion_auto_backup/venv/lib/python3.9/site-packages/requests/adapters.py", line 501, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', timeout('The write operation timed out'))

@ivknv
Copy link
Owner

ivknv commented Sep 28, 2023

Это известная проблема. Если кратко, для определённых типов файлов REST API режет скорость загрузки на диск до 128 КБ/с. Единственный способ обойти ограничение - это указывать другое расширение файла.

@vv-m
Copy link
Author

vv-m commented Sep 28, 2023

Спасибо за ответ!
Меня скорость не сильно беспокоит - главное что б загрузилось по итогу.
Какой таймаут посоветуете установить на 150 Мб - 200 Мб для ZIP?
Сейчас установил timeout=(15, 250)
Жду ... пока висит.
А то тестами не подобрать быстро, тк по 20 мин висит. А потом исключение выдает.

@ivknv
Copy link
Owner

ivknv commented Sep 28, 2023

Тяжело сказать, длинные промежутки ожидания возникают из-за того что Яндекс.Диск применяет ограничение скорости с задержкой. К моменту как ограничение скорости вступает в силу, вы могли загрузить на диск несколько десятков МБ данных. Вместо стабильной скорости вы получаете редкие кратковременные скачки до максимальной скорости и очень длинные периоды полного бездействия.

Вместо подбора таймаута я бы порекомендовал попробовать ограничить скорость загрузки со своей стороны (по крайней-мере насколько это возможно с requests), тогда периоды ожидания должны уменьшится.

Теоретически (если ограничение считается за фиксированный интервал времени), для скорости загрузки в 10 МБ/с время ожидания может составить около 78 с, при скорости в 100 МБ/с - уже около 780 c. Но совсем не факт, что вы сможете поддерживать соединение все это время на самом деле.

Но проще мне кажется всё-таки загружать файл с другим расширением и потом переименовывать обратно.

@vv-m
Copy link
Author

vv-m commented Sep 28, 2023

Спасибо за развернутый ответ!

@vv-m vv-m closed this as completed Sep 28, 2023
@ivknv ivknv added question language-russian Issue на русском known-problem This is a well known problem labels Dec 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
known-problem This is a well known problem language-russian Issue на русском question
Projects
None yet
Development

No branches or pull requests

2 participants