在Windows里搭建简易的HTTP网页以下载文件

Win10下运行命令:python upload.py

如果之前没有安装过python,会自动弹出在线商店界面,手动安装即可。
Linux从网页拉取文件:wget http://192.168.2.105:8000/CA.cer -O /tmp/certs/CA.cer
其中的192.168.2.105是Win10的IP。

upload.py的内容如下:

复制代码
import http.server
import socketserver
import os
import sys
from datetime import datetime

# --- 配置区域 ---
PORT = 8000
# 设置要共享的目录,默认为脚本所在的目录,也可以指定为桌面等其他路径
# 例如: SHARED_DIR = os.path.join(os.path.expanduser("~"), "Desktop")
SHARED_DIR = os.getcwd() 
# ----------------

class RobustHandler(http.server.SimpleHTTPRequestHandler):
    def __init__(self, *args, **kwargs):
        # 指定共享目录
        super().__init__(*args, directory=SHARED_DIR, **kwargs)

    def log_message(self, format, *args):
        """
        重写日志方法,使其打印到 stdout 并带时间戳,
        这样你可以清楚地看到 vCenter 的请求是否到达。
        """
        sys.stdout.write("[%s] %s\n" % (
            datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
            format % args))
        sys.stdout.flush()

    def end_headers(self):
        """
        添加 CORS 头(可选),防止某些严格的客户端报错
        """
        self.send_header('Access-Control-Allow-Origin', '*')
        super().end_headers()

def run_server():
    # 检查目录是否存在
    if not os.path.exists(SHARED_DIR):
        print(f"❌ 错误:指定的共享目录不存在 -> {SHARED_DIR}")
        return

    # 使用 ThreadingTCPServer 以支持多个并发连接(虽然这里只需要一个,但更稳健)
    with socketserver.ThreadingTCPServer(("", PORT), RobustHandler) as httpd:
        print("**************************************************")
        print(f"🚀 增强版 HTTP 服务器已启动!")
        print(f"📂 共享目录: {SHARED_DIR}")
        print(f"🌐 访问地址: http://<你的Windows_IP>:{PORT}/")
        print(f"📄 请确保你的文件(如 vc.cer)在上述目录中")
        print("💡 按 Ctrl+C 停止服务")
        print("**************************************************")
        
        try:
            httpd.serve_forever()
        except KeyboardInterrupt:
            print("\n👋 服务器已手动停止。")

if __name__ == "__main__":
    run_server()
相关推荐
Turboex邮件分享17 小时前
DNSBL 实时黑名单的技术原理:从 DNS 查询到垃圾邮件拦截
运维开发·软件需求
Ahtacca1 天前
Linux 基础实验:从终端操作到 C 语言编译
linux·运维·运维开发·虚拟机
Databuff2 天前
五款主流 SSH 免费工具介绍
运维·ssh·运维开发
蓝速科技3 天前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
程曦曦3 天前
MySQL 生产库误删 98 张表后的时间点恢复实战:从 binlog 解析到资金对账
linux·数据结构·其他·算法·ubuntu·运维开发
Dawn-bit6 天前
Linux 运维基础扩展:跳板机、堡垒机与物理服务器全流程
linux·运维·服务器·云计算·运维开发
蓝速科技6 天前
蓝速科技 F100 双屏翻译机:中小企业跨国会议提效方案
大数据·网络·数据结构·人工智能·科技·运维开发
我命由我1234511 天前
Windows 操作系统 - 启用 D 盘虚拟内存
java·运维·服务器·windows·学习·java-ee·运维开发
hanbo17C211 天前
不同规模的企业,选建站公司都要注意什么?
大数据·运维开发
Rain的Java大神之路13 天前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发