当前,如果我转到“ http://localhost:8035/”,则可以看到并有权访问所有文件,包括根目录,client_files目录和server_files目录(即,我有权访问所有文件,文件夹和所有文件其子目录等)。
目标:我想将文件访问权限限制为仅client_files目录中的文件。有没有办法用我目前的代码做到这一点?
当前目录结构:
当前代码(run_server.py-位于根目录中):
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)
答案 0 :(得分:0)
SimpleHTTPRequestHandler
为服务器从中运行目录的目录堆栈提供服务。最简单的解决方案是
import os
curD = os.path.dirname(os.path.abspath(__file__))
os.chdir(os.path.join(curD, “client_files”))
在启动服务器之前。额外的好处是:您可以在任何地方运行脚本,并且脚本对启动目录不敏感。