最近,我一直在編寫大量較小的wsgi應用程序,並希望找到一個可以分佈式,預先配置爲運行特定應用程序的Web服務器。我知道有些東西可以用於wsgi應用程序,例如twisted和cherrypy,但它們似乎缺少我的一項關鍵功能,即使用http range標頭“僞流”大文件的功能。是否有根據BSD或類似許可證提供的Web服務器,可以作爲獨立可執行文件分發到任何主要平臺上,該平臺既可以代理as wsgi服務器(如Cherrypy等),又可以使用http服務大型文件範圍標頭?
解決方案
Lighttpd具有BSD許可證,因此,如果需要,您應該能夠捆綁它。
您說它是針對小型應用程序的,所以我想這意味着小型http服務器爲小型本地,單用戶Web界面提供服務嗎?如果真是這樣,那麼任何python實現都應該起作用。只需使用py2exe之類的東西對其進行打包(實際上,不久前在SO上存在與打包python程序有關的問題)。
更新,重新:範圍標頭:默認的python http服務器可能不支持您想要的範圍標頭,但是編寫自己的處理程序或使用小型wsgi應用程序執行邏輯非常容易,尤其是當您正在做的是流式傳輸時一份文件。不需要太多行:
def stream_file(environ, start_response):
fp = open(base_dir + environ["PATH_INFO"])
fp.seek(environ["HTTP_CONTENT_RANGE"]) # just an example
start_response("200 OK", (('Content-Type', "file/type")))
return fp
本文首發於python黑洞網,csdn同步更新