5分钟快速解决方案
🚀 使用Python内置HTTP服务器 + 纯前端实现
- 创建一个新目录
mkdir ~/simple-file-browser && cd ~/simple-file-browser
- 新建
server.py
(用Python内置服务器替代Nginx)from http.server import SimpleHTTPRequestHandler from socketserver import TCPServer import os class CustomHandler(SimpleHTTPRequestHandler): def do_GET(self): if self.path == '/list': self.send_json(os.listdir('protected_files')) else: super().do_GET() def send_json(self, data): self.send_response(200) self.send_header('Content-Type', 'application/json') self.end_headers() self.wfile.write(str(data).encode()) os.chdir('protected_files') # 设置文件根目录 TCPServer(('0.0.0.0', 8000), CustomHandler).serve_forever()
- 新建
index.html
(直接读取本地文件列表)<!DOCTYPE html> <html> <body> <h1>简易文件浏览器</h1> <div id="files"></div> <script> fetch('/list') .then(r => r.json()) .then(files => { document.getElementById('files').innerHTML = files.map(f => `<div><a href="/${f}" download>${f}</a></div>` ).join('') }) </script> </body> </html>
- 启动服务
python3 server.py
现在访问
http://localhost:8000
即可看到文件列表并下载!
🌟 这个方案的优势:
- 完全绕过FastCGI/Nginx:用Python原生HTTP服务器处理请求
- 零配置:所有代码在一个目录内,不涉及系统权限
- 即时生效:修改后刷新浏览器即可看到变化
- 便携性强:整个文件夹可以复制到任何地方运行
如果还是遇到问题,您可以选择:
- 使用现成工具:比如FileBrowser (一行命令安装)
docker run -d -p 8080:80 -v /path/to/files:/srv filebrowser/filebrowser
- 改用SFTP:用WinSCP/FTP客户端直接访问WSL文件
有时候最简单的方案就是最好的方案。当技术让人沮丧时,退一步换个思路往往能更快解决问题。希望这个方案能帮您快速实现需求!如果还有其他困惑,我很乐意继续帮您简化流程。
关键点说明
权限问题:
如果遇到 Permission denied,运行:
bash
复制
sudo chmod -R 755 /var/www/simple-file-browser
目录结构:
复制
/var/www/simple-file-browser/
├── server.py # Python脚本
└── protected_files/ # 存放你的文件
├── test.txt
└── example.pdf
WSL特殊注意:
如果要从Windows访问WSL中的服务,需在启动时绑定到 0.0.0.0(代码中已实现)
Windows防火墙可能会拦截请求,需允许端口8000
替代方案(更简单)
如果不想处理权限问题,可以直接在用户目录操作:
bash
复制
mkdir -p ~/simple-file-browser/protected_files
cd ~/simple-file-browser
# 将server.py和文件放在这里
python3 server.py