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)
[認証ツールの例](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