初次提交

This commit is contained in:
2025-10-14 20:05:29 +08:00
commit 6e4e48fdd2
673 changed files with 437006 additions and 0 deletions

126
backend/debug_start.py Normal file
View File

@@ -0,0 +1,126 @@
#!/usr/bin/env python3
# 带诊断信息的启动脚本
import socket
import sys
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
# 检查端口是否可用
def check_port(port):
try:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind(('0.0.0.0', port))
return True
except OSError:
return False
# 获取本机IP
def get_local_ip():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]
s.close()
return ip
except:
return "127.0.0.1"
app = FastAPI(
title="云盘应用 API",
description="现代化的云存储Web应用后端API",
version="1.0.0",
docs_url="/docs",
redoc_url="/redoc"
)
# 更宽松的CORS配置
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/")
async def root():
return {
"message": "云盘应用 API",
"version": "1.0.0",
"docs": "/docs",
"health": "/health"
}
@app.get("/health")
async def health():
return {
"status": "healthy",
"message": "服务运行正常"
}
@app.get("/debug")
async def debug_info():
return {
"python_version": sys.version,
"working_directory": ".",
"available_endpoints": [
"/",
"/health",
"/debug",
"/docs",
"/redoc",
"/openapi.json"
]
}
if __name__ == "__main__":
port = 8000
print("🔍 启动前诊断...")
print(f"Python版本: {sys.version}")
print(f"工作目录: {(await debug_info())['working_directory']}")
# 检查端口
if not check_port(port):
print(f"❌ 端口 {port} 被占用,尝试使用端口 8001")
port = 8001
local_ip = get_local_ip()
print(f"🚀 启动云盘后端服务...")
print("=" * 60)
print(f"📍 本地访问: http://localhost:{port}")
print(f"📍 网络访问: http://{local_ip}:{port}")
print(f"📚 API文档: http://localhost:{port}/docs")
print(f"📚 网络文档: http://{local_ip}:{port}/docs")
print(f"❤️ 健康检查: http://localhost:{port}/health")
print(f"🔧 调试信息: http://localhost:{port}/debug")
print(f"⏹️ 按 Ctrl+C 停止服务")
print("=" * 60)
# 启动时打印所有路由
@app.on_event("startup")
async def startup_event():
print("\n📋 可用路由:")
for route in app.routes:
if hasattr(route, 'path') and hasattr(route, 'methods'):
print(f" {list(route.methods)} {route.path}")
print()
try:
uvicorn.run(
app,
host="0.0.0.0", # 允许外部访问
port=port,
reload=False,
access_log=True, # 显示访问日志
log_level="info"
)
except Exception as e:
print(f"❌ 启动失败: {e}")
print("\n💡 尝试的解决方案:")
print("1. 检查防火墙设置")
print("2. 尝试其他端口: python debug_start.py")
print("3. 检查是否有其他程序占用端口")