import { createWebDavServer } from "../src/server/webdav/server.mjs"; import { getWebdavConfig } from "../src/server/webdav/config.mjs"; process.env.WEBDAV_PORT ||= "3201"; const config = getWebdavConfig(); if (!config.enabled) process.exit(0); const server = createWebDavServer({ appUrl: config.appUrl, username: config.username, password: process.env.ACCESS_TOKEN, basePath: config.basePath }); server.headersTimeout = 10_000; server.requestTimeout = 30_000; server.on("error", () => { console.error("WebDAV 启动失败,请检查监听地址和端口是否被占用"); process.exitCode = 1; }); server.listen(config.port, config.host, () => { console.info(`WebDAV 已启动:端口 ${config.port},仅提供只读文件访问`); }); const close = () => { server.close(); // 先允许正在进行的传输结束,容器停止时最多等待 5 秒。 setTimeout(() => server.closeAllConnections(), 5000).unref(); }; process.once("SIGINT", close); process.once("SIGTERM", close);