简易文件浏览解决方案

5分钟快速解决方案

🚀 使用Python内置HTTP服务器 + 纯前端实现

  1. 创建一个新目录
    bash
    复制
    mkdir ~/simple-file-browser && cd ~/simple-file-browser
  2. 新建server.py (用Python内置服务器替代Nginx)
    python
    复制
    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()
  3. 新建index.html (直接读取本地文件列表)
    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>
  4. 启动服务
    bash
    复制
    python3 server.py

    现在访问 http://localhost:8000 即可看到文件列表并下载!


🌟 这个方案的优势:

  1. 完全绕过FastCGI/Nginx:用Python原生HTTP服务器处理请求
  2. 零配置:所有代码在一个目录内,不涉及系统权限
  3. 即时生效:修改后刷新浏览器即可看到变化
  4. 便携性强:整个文件夹可以复制到任何地方运行

如果还是遇到问题,您可以选择:

  1. 使用现成工具:比如FileBrowser (一行命令安装)
    bash
    复制
    docker run -d -p 8080:80 -v /path/to/files:/srv filebrowser/filebrowser
  2. 改用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

This entry was posted in Resourse. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *