download_to_filename зависает, если сеть отключается в середине - PullRequest
0 голосов
/ 09 сентября 2018

У меня проблема с загрузкой больших файлов из облачного хранилища Google, и если во время загрузки происходит отключение сети, метод download_to_filename просто зависает. Я не смог найти способ установить тайм-аут на него, чтобы он не вызывал зависание всей моей программы. Есть ли способ заставить его тайм-аут или я что-то упустил?

from google.cloud import storage

client = storage.Client('project-id')
bucket = client.get_bucket('bucket-name')
blob = storage.blob.Blob('Large-file.txt', bucket)
blob.download_to_filename(blob.name)

Похоже, это происходит, только если я отключаюсь от сети в середине метода download_to_filename. Если я отключаюсь до имени download_to_filename, я получаю ConnectionError.

Я могу справиться с любыми возникшими исключениями, у меня просто не может быть этого зависания.

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете попытаться создать объект "сеанса" с заданным временем ожидания, а затем использовать его для создания хранилища. Клиент.В [1] и [2] вы найдете определение для объекта «storage.Client» и «request».

Эта информация может быть полезна для понимания того, как работает тайм-аут [3].

  1. https://googleapis.github.io/google-cloud-python/latest/storage/client.html
  2. http://docs.python -requests.org / ru / master / api / # запросы. Сессия.request
  3. http://docs.python -requests.org / ru / master / user / advanced / # timeouts
...