0
我想弄清楚如何自定義用cherrypy提供的靜態內容。用CherryPy自定義靜態內容
目標是當路徑以/ pub開始時按照正常方式提供文件,但當路徑以其他任何內容開始時,我想添加首先檢查訪問的自定義函數。
該文檔給我足夠的。這是我到目前爲止...
import cherrypy
from cherrypy.lib.static import serve_file
class Root(object):
# Somehow turn this into a handler for all files
def page(self):
if authorized(): # Check whether authenticated user may access the requested path
file_location = .... # Work out file location from request
print("Serving file from %s" % file_location)
return serve_file(file_location)
else:
return "Not Authorized"
if __name__ == '__main__':
serve_conf = {'/': {'tools.gzip.on': True},
'/pub': {
'tools.staticdir.on': True,
'tools.staticdir.dir': "/data/public",
'tools.staticdir.debug': True,
'log.screen': True
},
'/secure': { "PROBABLY CONFIGURE THE HANDLER HERE" }
}
cherrypy.quickstart(Root(), config=serve_conf)
請看[auth工具的例子](https://github.com/GDG-Ukraine/gdg.org.ua/blob/master/src/GDGUkraine/lib/tools/authorize.py),它使用類「cherrypy.Tool」和[正在通過簡單賦值註冊](https://github.com/GDG-Ukraine/gdg.org.ua/blob/master/src/GDGUkraine/lib/tools/__init__。 PY#L7)。我希望這會幫助你將你的代碼包裝到一個類中。 – webKnjaZ