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

[Question] Не работает listdir #45

Closed
Ricoroma opened this issue Mar 30, 2024 · 2 comments
Closed

[Question] Не работает listdir #45

Ricoroma opened this issue Mar 30, 2024 · 2 comments
Labels
language-russian Issue на русском question

Comments

@Ricoroma
Copy link

Здравствуйте. Долгое время пользовался библиотекой без каких-либо проблем, но тут обнаружилась одна: в общем случае функция Client.listdir() работает нормально, но при попытке применить ее к некоторым конкретным папкам вылетает

yadisk.exceptions.RequestTimeoutError: HTTPSConnectionPool(host='cloud-api.yandex.net', port=443): Read timed out. (read timeout=15.0)

В чем может быть причина такого исключения?
Провел несколько тестов: папка над вызывающей ошибку показывается нормально, папка внутри этой ошибочной тоже открывается нормально, но сама (ошибочная) папка не открывается, а падает исключение

@ivknv
Copy link
Owner

ivknv commented Mar 30, 2024

Возможно ли, что в папке, приводящей к таймауту, лежат тысячи файлов/папок?

У метода listdir() есть параметр limit, он определяет сколько файлов будет в возвращаться за один запрос, по умолчанию он установлен в 10000, попробуйте поставить значение поменьше (например, 1000 или 500), тогда ответы от сервера будут поступать меньшими кусками:

import yadisk

with yadisk.Client(token="...") as client:
    print(list(client.listdir("/path/to/folder", limit=500)))

В крайнем случае можно увеличить максимальный таймаут (см. параметр timeout).

@ivknv ivknv added question language-russian Issue на русском labels Mar 30, 2024
@Ricoroma
Copy link
Author

посмотрел, да, оказалось, что там огромное количество лежит. спасибо, буду делать через лимит+оффсет

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
language-russian Issue на русском question
Projects
None yet
Development

No branches or pull requests

2 participants