以下是一个使用 Python 实现简单 HTTP 文件下载服务的示例代码:
python
import http.server
import socketserver
import os
# 定义服务器端口
PORT = 8080
# 定义文件目录
DIRECTORY = "your_directory" # 将 "your_directory" 替换为实际的文件目录
# 创建一个处理请求的类
class MyHandler(http.server.SimpleHTTPRequestHandler):
def translate_path(self, path):
# 确保返回的路径在指定的目录内
path = os.path.normpath(os.path.join(DIRECTORY, path.lstrip('/')))
return path
# 创建服务器
with socketserver.TCPServer(("", PORT), MyHandler) as httpd:
print(f"Serving at port {PORT}")
# 启动服务器,使其一直运行
httpd.serve_forever()
在上述代码中:
- 我们首先定义了服务器运行的端口
PORT
和文件所在的目录DIRECTORY
。 - 然后创建了一个继承自
http.server.SimpleHTTPRequestHandler
的类MyHandler
,并重写了translate_path
方法,以确保访问的路径都在指定的目录内。 - 最后创建服务器,并使用
serve_forever
方法使其持续运行。
运行这段代码后,您可以在浏览器中输入 http://localhost:8080/文件名
来下载文件。