From dfba5606341dd5675a04dbadefba7a53f4188594 Mon Sep 17 00:00:00 2001 From: doctor <360434467@qq.com> Date: Thu, 21 Dec 2023 03:58:36 +0000 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E9=85=8D=E7=BD=AE=20alist=5Fhost=EF=BC=8C=E6=96=B9?= =?UTF-8?q?=E4=BE=BF=E9=A6=96=E6=AC=A1=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 22 +++++++++++++++++++++- node-proxy/src/config.js | 22 +++++++++++++++------- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 724d8d1..db163ce 100644 --- a/README.md +++ b/README.md @@ -60,10 +60,30 @@ Alist-encrypt 就是为了解决这个问题,它可以在网页中上传文件 > docker run -d -p 5344:5344 -v /etc/conf:/node-proxy/conf --name=alist-encrypt prophet310/alist-encrypt:beta +可以添加环境变量 -e ALIST_HOST=192.168.9.100:5244 这样首次启动就会默认设置 alist ip 地址 + arm 版本目前单独打包 beta-arm,后续再放一起 > docker run -d -p 5344:5344 -v /etc/conf:/node-proxy/conf --name=alist-encrypt prophet310/alist-encrypt:beta-arm +docker-compose.yml + + version: '3' + services: + alist-encrypt: + image: prophet310/alist-encrypt:beta + restart: unless-stopped + hostname: alist-encrypt + container_name: alist-encrypt + volumes: + - ./alist-encrypt:/node-proxy/conf + environment: + TZ: Asia/Shanghai + ALIST_HOST: 192.168.31.254:5254 # 建议加个设置项,类似这样 + ports: + - 5344:5344 + network_mode: bridge + 启动后就打开代理服务器地址 http://127.0.0.1:5344/public/index.html 即可进入配置页面,账号 admin,密码默认 123456。配置后之后,打开http://127.0.0.1:5344 即可访问到 alist 的服务了。 对于路径的设置,目前是支持正则表达式的,推荐表达式例如: movie_encrypt/\* ,这样的话所有的 movie_encrypt 目录的文件都会被加密传输。 @@ -96,7 +116,7 @@ arm 版本目前单独打包 beta-arm,后续再放一起 ### 已知问题 - ~~加密文本还不能在线看,当前建议直接下载看~~ 已经支持。 -- 阿里云盘无法使用 Aliyun Video Previewer 进行播放,使用 Video 方式播放 +- ~~阿里云盘无法使用 Aliyun Video Previewer 进行播放~~ 现在默认使用 Video 方式播放 ### 局限性 diff --git a/node-proxy/src/config.js b/node-proxy/src/config.js index 835995a..0f45c20 100644 --- a/node-proxy/src/config.js +++ b/node-proxy/src/config.js @@ -12,14 +12,22 @@ if (!fs.existsSync(getConfPath())) { // fs.mkdirSync(path.resolve('conf')) fs.mkdirSync(process.cwd() + '/conf') } - +// 从环境变量上读取配置信息,docker首次启动时候可以直接进行配置 +const serverAddr = process.env.ALIST_HOST +const serverHost = '192.168.1.100' +const serverPort = 5244 +if (serverAddr && serverAddr.indexOf(':') > 6) { + serverHost = serverAddr.split(':')[0] + serverPort = serverAddr.split(':')[1] +} +console.log('@@serverAddr:', serverAddr) /** 全局代理alist,包括它的webdav和http服务,要配置上 */ const alistServerTemp = { name: 'alist', path: '/*', // 默认就是代理全部,保留字段 describe: 'alist 配置', - serverHost: '192.168.1.100', - serverPort: 5244, + serverHost, + serverPort, https: false, passwdList: [ { @@ -29,7 +37,7 @@ const alistServerTemp = { enable: true, // enable encrypt encName: false, // encrypt file name encSuffix: '', // - encPath: ['encrypt_folder/*', '/189cloud/atest/*'], // 路径支持正则表达式,常用的就是 尾巴带*,此目录的所文件都加密 + encPath: ['encrypt_folder/*', 'movie_encrypt/*'], // 路径支持正则表达式,常用的就是 尾巴带*,此目录的所文件都加密 }, ], } @@ -42,8 +50,8 @@ const webdavServerTemp = [ describe: 'webdav 电影', path: '^/test_dav_dir/*', // 代理全部路径,需要重启后生效。不能是"/enc-api/*" ,系统已占用。如果设置 "/*",那么上面的alist的配置就不会生效哦 enable: false, // 是否启动代理,需要重启后生效 - serverHost: '192.168.1.100', - serverPort: 5244, + serverHost, + serverPort, https: false, passwdList: [ { @@ -128,7 +136,7 @@ initAlistConfig(configData.alistServer) /** 代理服务的端口 */ export const port = configData.port || 5344 -export const version = '0.2.9' +export const version = '0.3.0' export const alistServer = configData.alistServer || alistServerTemp