Skill: mtafersit1-png/file-download-server (version 1.1.0)

--- name: file-download-server description: 快速搭建临时文件下载服务器，支持HTTP下载、美观的下载页面、防火墙端口自动开放。适用于需要向用户发送文件但聊天工具不支持直接文件传输的场景。触发词：下载服务器、文件下载、发送文件、搭建下载链接 --- # 文件下载服务器 (File Download Server) 快速搭建临时 HTTP 文件下载服务器，解决文件传输问题。 ## 功能特性 - ✅ 一键启动 HTTP 服务器 - ✅ 自动生成美观的下载页面 - ✅ 自动开放防火墙端口 - ✅ 支持大文件下载 - ✅ 后台运行管理 ## 快速开始 ### 启动下载服务器 ```bash # 使用默认端口 4000 python3 {baseDir}/scripts/start_server.py /path/to/files # 指定端口 python3 {baseDir}/scripts/start_server.py /path/to/files --port 8080 # 后台运行 python3 {baseDir}/scripts/start_server.py /path/to/files --daemon ``` ### 生成下载页面 ```bash # 为单个文件生成下载页面 python3 {baseDir}/scripts/generate_index.py /path/to/file.pdf # 为整个目录生成下载页面 python3 {baseDir}/scripts/generate_index.py /path/to/directory ``` ### 开放防火墙端口 ```bash # 开放指定端口 python3 {baseDir}/scripts/open_port.py 4000 # 同时开放多个端口 python3 {baseDir}/scripts/open_port.py 4000 8080 9999 ``` ## 使用示例 ### 示例 1: 发送论文 PDF ```python # 1. 确保文件存在 pdf_path = "/root/.openclaw/workspace/papers/casting-defect-detection.pdf" # 2. 生成下载页面 from scripts.generate_index import generate_download_page generate_download_page(pdf_path, title="论文下载", description="这是一篇关于铸件缺陷检测的论文") # 3. 启动服务器 from scripts.start_server import start_download_server server = start_download_server( directory="/root/.openclaw/workspace/papers", port=4000, daemon=True ) # 4. 给用户发送下载链接 print("📥 下载链接: http://your-server-ip:4000/") ``` ### 示例 2: 批量文件分享 ```bash # 为整个项目目录创建下载服务 python3 {baseDir}/scripts/start_server.py /path/to/project --port 8080 --daemon # 用户可以访问 http://your-ip:8080/ 浏览和下载所有文件 ``` ## 脚本说明 ### scripts/start_server.py 启动文件下载服务器的主脚本。 **参数:** - `directory`: 要分享的文件目录路径 - `--port PORT`: 服务器端口（默认: 4000） - `--daemon`: 后台运行 - `--bind ADDRESS`: 绑定地址（默认: 0.0.0.0） ### scripts/generate_index.py 生成美观的下载页面。 **参数:** - `path`: 文件或目录路径 - `--title TITLE`: 页面标题 - `--description DESC`: 页面描述 - `--output FILE`: 输出 HTML 文件路径 ### scripts/open_port.py 开放防火墙端口。 **参数:** - `ports`: 要开放的端口列表（可多个） ## 下载页面特性 生成的 HTML 下载页面包含： - 🎨 现代化渐变设计 - 📄 文件信息展示（标题、描述、大小） - ⬇️ 醒目的下载按钮 - 📱 响应式布局，支持手机访问 - 🔒 安全提示信息 ## 服务管理 ### 查看运行状态 ```bash # 查看 Python HTTP 服务器进程 ps aux | grep "python3 -m http.server" ``` ### 停止服务器 ```bash # 查找并杀死进程 pkill -f "python3 -m http.server.*4000" ``` ### 重启服务器 ```bash # 先停止，再启动 pkill -f "python3 -m http.server.*4000" python3 {baseDir}/scripts/start_server.py /path/to/files --port 4000 --daemon ``` ## 安全提示 ⚠️ **重要安全注意事项:** 1. **临时使用**: 此服务器仅用于临时文件分享，不要长期运行 2. **端口安全**: 使用后及时关闭防火墙端口 3. **文件权限**: 确保只分享必要的文件 4. **访问控制**: 生产环境建议添加认证机制 5. **及时停止**: 文件下载完成后立即停止服务器 ## 故障排除 ### 问题：无法访问下载链接 **检查清单:** 1. 确认服务器正在运行: `ps aux | grep http.server` 2. 确认防火墙端口已开放: `iptables -L -n | grep 4000` 3. 确认云服务器安全组已放行该端口 4. 检查文件路径是否正确 ### 问题：下载速度慢 **解决方案:** - 使用更靠近用户的端口 - 压缩大文件后再分享 - 考虑使用专业的文件传输服务 ### 问题：端口被占用 **解决方案:** ```bash # 查找占用端口的进程 lsof -i :4000 # 杀死进程或换用其他端口 python3 {baseDir}/scripts/start_server.py /path/to/files --port 8080 ``` ## 高级用法 ### 自定义下载页面 编辑 `assets/download_template.html` 来自定义页面样式。 ### 支持的文件类型 下载页面会自动识别并适配： - 📄 PDF 文档 - 📊 Excel/CSV 表格 - 🖼️ 图片文件 (PNG, JPG, GIF) - 📦 压缩文件 (ZIP, RAR) - 🎬 视频文件 (MP4, AVI) - 📝 其他任意文件类型 ### 多端口服务 可以同时启动多个服务器： ```bash # 论文分享（端口 4000） python3 {baseDir}/scripts/start_server.py /papers --port 4000 --daemon # 数据分享（端口 8080） python3 {baseDir}/scripts/start_server.py /data --port 8080 --daemon ``` ## 参考资料 - Python http.server 文档: https://docs.python.org/3/library/http.server.html - iptables 防火墙配置: https://netfilter.org/projects/iptables/


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)