31 lines
1008 B
JavaScript
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);
|