在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()
相关推荐
Dawn-bit2 天前
Linux 日志处理三剑客之 awk:取列、取行、过滤与统计计算
linux·运维·服务器·云计算·运维开发
东荷新绿3 天前
【运维开发】acme.sh 安装|签发泛域名SSL证书,宝塔Nginx部署+自动续期
nginx·腾讯云·运维开发·ssl·宝塔·acme.sh
Dawn-bit5 天前
Linux文本处理三剑客之sed详解
linux·运维·服务器·云计算·运维开发
Dawn-bit7 天前
Linux日志处理三剑客之基础篇:(基础正则+扩展正则)
linux·运维·服务器·正则表达式·云计算·运维开发
小泊客7 天前
友善R5C刷OpenWrt后RTL8822CE无线网卡显示“禁用”或“未激活”的完整解决方案
linux·github·运维开发
我命由我123459 天前
Windows 操作系统 - 符号链接
linux·运维·windows·系统架构·操作系统·运维开发·系统
承渊政道11 天前
ToDesk远程终端:手机打开Codex,离开电脑也能继续推进任务
智能手机·运维开发·claude·todesk·远程控制·codex
云计算磊哥@11 天前
运维开发宝典059-大型网站nginx服务器管理全集5
服务器·nginx·运维开发
云计算磊哥@14 天前
运维开发宝典058-大型网站nginx服务器管理全集4
服务器·nginx·运维开发