Files
2026-10-16 09:03:23 -07:00

31 lines
1008 B
JavaScript

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);