我正在制作RPM文件缓存服务器。网络上的PC访问缓存服务器。如果该文件存在于服务器上,则会提供该文件。如果没有,它将在上传之前从互联网上下载。
我用BaseHTTPServer用urllib写这个来获取文件。现在使用小文件,下载文件和提供文件之间几乎没有延迟。
...
store_file.write(download_buffer.read())
store_file.close()
...
f=open(file_path,'r')
self.wfile.write(f.read())
...
但有些文件下载可能需要几分钟。因此,当服务器完成文件时,客户端会一直等待。这可能会导致客户端超时。我们如何在下载文件时提供文件以防止客户超时?
答案 0 :(得分:2)
读写循环。
x= download_buffer.read(1024)
while x:
self.wfile.write(x)
x= download_buffer.read(1024)