什么是让我的文件夹隐藏/限制扭曲的最佳方法?

时间:2012-05-02 04:27:24

标签: python twisted

几天前,我试图学习蟒蛇扭曲..
这就是我制作网络服务器的方式:

from twisted.application import internet, service
from twisted.web import static, server, script
from twisted.web.resource import Resource
import os

class NotFound(Resource):
    isLeaf=True
    def render(self, request):
        return "Sorry... the page you're requesting is not found / forbidden"

class myStaticFile(static.File):
    def directoryListing(self):
        return self.childNotFound

#root=static.file(os.getcwd()+"/www")
root=myStaticFile(os.getcwd()+"/www")
root.indexNames=['index.py']
root.ignoreExt(".py")
root.processors = {'.py': script.ResourceScript}
root.childNotFound=NotFound()
application = service.Application('web')
sc = service.IServiceCollection(application) 
i = internet.TCPServer(8080, server.Site(root))#@UndefinedVariable
i.setServiceParent(sc)

在我的代码中,我为twisted.web.static.File和override directoryListing创建了一个实例类。
因此,当用户尝试访问我的资源文件夹(http://localhost:8080/resource/http://localhost:8080/resource/css)时,它将返回一个notFound页面。
但他仍然可以打开/阅读http://localhost:8080/resource/css/style.css 它有效...

我想知道的是......这是正确的方法吗?
还有另一种“完美”的方式吗? 我正在寻找一个禁用像root.dirListing=False这样的目录列表的配置。但没有运气......

1 个答案:

答案 0 :(得分:1)

是的,这是一种合理的方式。您也可以使用twisted.web.resource.NoResourcetwisted.web.resource.Forbidden,而不是定义自己的NotFound