在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()
相关推荐
daxiangxm1 天前
GEO策略:让AI直接引用你的内容
开发语言·团队开发·运维开发·个人开发·数据库开发
迪康Defender3 天前
终端安全事后追溯能力解析:本地审计模块设计思路与落地实践
运维·开发语言·人工智能·安全·php·安全威胁分析·运维开发
森叶9 天前
零成本上线插件官网:万网域名 + Cloudflare Pages + Nuxt 4 全流程实录
运维开发
我命由我1234519 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
我命由我1234519 天前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法
天天喝旺仔20 天前
Linux 性能排查实战:用 perf、strace 与火焰图定位 CPU、内存与 IO 瓶颈
linux·性能优化·运维开发
Turboex邮件分享22 天前
DNSBL 实时黑名单的技术原理:从 DNS 查询到垃圾邮件拦截
运维开发·软件需求
Ahtacca22 天前
Linux 基础实验:从终端操作到 C 语言编译
linux·运维·运维开发·虚拟机
Databuff23 天前
五款主流 SSH 免费工具介绍
运维·ssh·运维开发
蓝速科技24 天前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发