2011-06-30 69 views
0

我正在製作RPM文件緩存服務器。網絡上的PC訪問緩存服務器。如果該文件存在於服務器上,它將被提供。如果沒有,它會在下載之前從互聯網上下載。python:在使用urllib下載文件時提供文件,BaseHTTPSserver

我用BaseHTTPServer用urllib寫這個來獲取文件。現在使用小文件,在下載文件和提供文件之間幾乎沒有延遲。

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

但是有些文件可能需要幾分鐘才能下載。所以當服務器完成文件時,客戶端一直在等待。這可能會導致客戶端超時。我們如何在下載文件時爲其提供服務,以防止客戶端超時?

回答

2

一個讀寫循環。

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

當然!爲什麼沒有這個跨越我的想法? – aitchnyu