为Filen添加WebDAV支持 - 技术宅银魂 - 科技改变生活 - 万事屋

为Filen添加WebDAV支持

Filen本身并不支持通过WebDAV访问文件,只能通过网页或者APP访问文件。要通过WebDAV访问Filen,显然是需要我们自己写服务端的。不过,Filen官方为我们提供了一个Node.js库,可以很方便地实现WebDAV服务端。

首先,登录服务器/VPS系统,创建一个文件夹,作为存放WebDAV服务端文件的地方。

然后,进入该文件夹,执行命令:npm install @filen/webdav@latest ,这将安装运行WebDAV所需的依赖库。如果服务器/VPS没有安装Node.js,则在执行上面的命令前,需要先安装Node.js,否则会报错。安装依赖需要占据大概31MB空间。  
依赖安装完成后,我们需要在目录中新建一个server.js文件,粘贴下面的内容并保存:

import WebDAVServer from "@filen/webdav"
//WebDAV主机名,如果需要禁止外网访问,请改成127.0.0.1
const hostname = "0.0.0.0"
//WebDAV端口,可改成其他端口
const port =  8888
//是否使用https,暂时不知道怎么配置证书,所以这里禁用了https
const https = false
const server = new WebDAVServer.default({
  hostname,
  port,
  https,
  authMode: "basic"
});
server
  .start()
  .then(() =>
    console.log(`WebDAV 服务端正运行在 ${https ? "https" : "http"}://${hostname === "0.0.0.0" ? "local.webdav.filen.io" : hostname}:${port}`)
  )
  .catch(console.error)

 

然后,打开目录中 package.json 文件,在 “dependencies”: { 的上面添加一行 “type”: “module”, ,最终的文件内容应该是这样的:

{
  "type": "module",
  "dependencies": {
    "@filen/webdav": "^0.2.20"
  }
}

保存文件后,我们的WebDAV服务端便编写完成了。要启动它,请执行:nohup bash -c “node server.js” &
启动完成后,我们就能通过WebDAV客户端软件来连接了。连接地址是http://{主机名}:{端口号},比如对于上面的代码,连接地址就是http://127.0.0.1:8888 。  
用户名即为登录Filen的邮箱地址,但是密码不能直接填Filen的登录密码,需要在前面加上password= ,也就是说如果我们的Filen登录密码为 123456,那么WebDAV的登录密码就是 password=123456。  
在WebDAV客户端软件中输入连接地址、用户名和密码后,就可以连接到Filen了。当然,也可以借此实现Alist访问Filen。

万事屋新帖