python: обслуживать файл во время его загрузки с помощью urllib, BaseHTTPSserver - PullRequest
0 голосов
/ 30 июня 2011

Я делаю RPM-сервер кеша файлов.ПК в сети обращается к серверу кеша.Если файл присутствует на сервере, он обслуживается.Если нет, то он загружается из интернета перед обслуживанием.

Я написал это с BaseHTTPServer с urllib для получения файлов.Теперь для небольших файлов существует небольшая задержка между загрузкой файла и его обслуживанием.

...
store_file.write(download_buffer.read())
store_file.close()
...
f=open(file_path,'r')
self.wfile.write(f.read())
...

Но для загрузки некоторых файлов может потребоваться несколько минут.Таким образом, клиент продолжает ждать, пока сервер заканчивает файл.Это может привести к тайм-ауту клиента.Как мы обслуживаем файл во время его загрузки, чтобы предотвратить тайм-ауты со стороны клиента?

1 Ответ

2 голосов
/ 30 июня 2011

Цикл чтения-записи.

x= download_buffer.read(1024)
while x:
    self.wfile.write(x)
    x= download_buffer.read(1024)
...