首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何限制对Python simplehttpserver的特定目录访问

如何限制对Python simplehttpserver的特定目录访问
EN

Stack Overflow用户
提问于 2019-02-01 01:19:20
回答 1查看 1.9K关注 0票数 0

目前,如果我转到"http://localhost:8035/",我可以看到并访问所有文件,包括根目录、client_files目录和server_files目录(即我可以访问所有文件、文件夹及其所有子目录等)。

目标:我希望将文件访问限制为只访问client_files目录中的文件。有没有办法用我现有的代码做到这一点?

当前目录结构:

当前代码(run_server.py -位于根目录):

代码语言:javascript
复制
from http.server import HTTPServer, SimpleHTTPRequestHandler

class CORSRequestHandler(SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_header('Access-Control-Allow-Origin', '*')
        self.send_header('Access-Control-Allow-Methods', 'GET')
        self.send_header('Cache-Control', 'no-store, no-cache, must-revalidate')
        return super(CORSRequestHandler, self).end_headers()

def func_run_server(url, port):
    httpd = HTTPServer((url, port), CORSRequestHandler)
    httpd.serve_forever()

func_run_server('localhost', 8035)
EN

回答 1

Stack Overflow用户

发布于 2019-02-01 02:00:57

SimpleHTTPRequestHandler为运行服务器的目录下的目录堆栈提供服务。最简单的解决方案是

代码语言:javascript
复制
import os
curD = os.path.dirname(os.path.abspath(__file__))
os.chdir(os.path.join(curD, “client_files”))

在启动服务器之前。额外的好处:你可以从任何地方运行这个脚本,它不会对启动它的目录敏感。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54465988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档