From 70ff01a264a729b2408ef2f59e2da78ec22ba69e Mon Sep 17 00:00:00 2001 From: okxlin Date: Wed, 24 Apr 2024 00:41:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0alist-encrypt=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/alist-encrypt/README.md | 23 +++++++++++++++ apps/alist-encrypt/beta/.env.sample | 5 ++++ apps/alist-encrypt/beta/data.yml | 31 +++++++++++++++++++++ apps/alist-encrypt/beta/docker-compose.yml | 21 ++++++++++++++ apps/alist-encrypt/data.yml | 19 +++++++++++++ apps/alist-encrypt/logo.png | Bin 0 -> 2028 bytes 6 files changed, 99 insertions(+) create mode 100644 apps/alist-encrypt/README.md create mode 100644 apps/alist-encrypt/beta/.env.sample create mode 100644 apps/alist-encrypt/beta/data.yml create mode 100644 apps/alist-encrypt/beta/docker-compose.yml create mode 100644 apps/alist-encrypt/data.yml create mode 100644 apps/alist-encrypt/logo.png diff --git a/apps/alist-encrypt/README.md b/apps/alist-encrypt/README.md new file mode 100644 index 00000000..ae37a1a3 --- /dev/null +++ b/apps/alist-encrypt/README.md @@ -0,0 +1,23 @@ +# Alist-encrypt + +这个项目主要是对 alist 的服务进行代理,提供 webdav 的加解密功能。支持 alist 网页在线播放加密的视频,查看加密的图片等功能,同时在 webdav 下的操作透明,自动实现文件资源的加解密。 + + +## 使用说明 + +启动后就打开代理服务器地址 `http://ip:端口/public/index.html` 即可进入配置页面,`账号 admin,密码默认 123456`。 + +配置后之后,打开`http://ip:端口` 即可访问到 alist 的服务了。 + +对于路径的设置,目前是支持正则表达式的,推荐表达式例如: movie_encrypt/\* ,这样的话所有的 movie_encrypt 目录的文件都会被加密传输。 + + +## 需求背景 + +AList 是一个支持多种存储、云网盘,支持网页浏览和提供 WebDAV 服务的应用程序。最近的阿里云盘很火,因为不限速,所以不少人使用阿里云盘配合 alist 当做个人的影院,随时在线观看视频。 + +国内的云盘有很多,除了阿里云盘还有天翼云盘也是不限速的,但是几乎都存在一个问题,敏感资源会被删除,相信很多人经历文件被删除掉的噩梦。那么有没有什么办法可以避免这样的问题呢,最简单的方案就是加密后上传。那么就有大局限性,不能实时在线播放视频,当然也有一些方案可以做到。加密后的文件分享也存在一定的不方便(密码不方便对外提供,本项目会有密码替身可以提供外部使用)。 + +Alist-encrypt 就是为了解决这个问题,它可以在网页中上传文件,也可以结合 webdav 服务器进行使用。在文件上传的时候进行加密,文件下载的时候进行解密,由于使用的是流加密方案,所以可以很轻松实现在线播放已加密的视频,浏览图片、文件等。目前主流的方案都是使用 alist 来实现网盘 webdav 的服务,所以 Alist-encrypt 支持 alist 服务,并且优先支持它的适配,支持网页版在线播放视频等功能。 + +关于这个项目的使用场景,对文件安全隐私有一定的需求,防止云盘扫描删除,有实时播放视频和下载的需求。 \ No newline at end of file diff --git a/apps/alist-encrypt/beta/.env.sample b/apps/alist-encrypt/beta/.env.sample new file mode 100644 index 00000000..8ea18954 --- /dev/null +++ b/apps/alist-encrypt/beta/.env.sample @@ -0,0 +1,5 @@ +CONTAINER_NAME="alist-encrypt" +PANEL_APP_PORT_HTTP="40218" +DATA_PATH="./data" +ALIST_HOST="192.168.31.254:5254" +TIME_ZONE="Asia/Shanghai" diff --git a/apps/alist-encrypt/beta/data.yml b/apps/alist-encrypt/beta/data.yml new file mode 100644 index 00000000..99e03327 --- /dev/null +++ b/apps/alist-encrypt/beta/data.yml @@ -0,0 +1,31 @@ +additionalProperties: + formFields: + - default: 40218 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text + - default: '192.168.31.254:5254' + edit: true + envKey: ALIST_HOST + labelEn: Alist Service Address + labelZh: Alist 服务地址 + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TIME_ZONE + labelEn: Time zone + labelZh: 时区 + required: true + type: text diff --git a/apps/alist-encrypt/beta/docker-compose.yml b/apps/alist-encrypt/beta/docker-compose.yml new file mode 100644 index 00000000..a46f939c --- /dev/null +++ b/apps/alist-encrypt/beta/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3' +services: + alist-encrypt: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:5344" + volumes: + - "${DATA_PATH}:/node-proxy/conf" + environment: + - TZ=${TIME_ZONE} + - ALIST_HOST=${ALIST_HOST} + image: prophet310/alist-encrypt:beta + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/alist-encrypt/data.yml b/apps/alist-encrypt/data.yml new file mode 100644 index 00000000..b5546136 --- /dev/null +++ b/apps/alist-encrypt/data.yml @@ -0,0 +1,19 @@ +name: Alist-encrypt +tags: + - 工具 +title: 对 Alist 的服务提供 webdav 的加解密功能 +description: 对 Alist 的服务提供 webdav 的加解密功能 +additionalProperties: + key: alist-encrypt + name: Alist-encrypt + tags: + - Tool + shortDescZh: 对 Alist 的服务提供 webdav 的加解密功能 + shortDescEn: Provides webdav encryption and decryption for Alist's services + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://github.com/traceless/alist-encrypt + github: https://github.com/traceless/alist-encrypt + document: https://github.com/traceless/alist-encrypt diff --git a/apps/alist-encrypt/logo.png b/apps/alist-encrypt/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7330612a20f662e4868f7d0f54e97fc755339659 GIT binary patch literal 2028 zcmdUw`9Bj51IH&Cu?;meQ*2*~IW|YaL}nP-*ybtsOtUNdLs_*WMrPz znf|JZvZdcy8na%9-uGth)ZKB+cXF6&3$^c38c6urFG~j=Kjg0PrU^ANrTiv<+!1}v z^|bVXYvf~j@%5Wg7qb!&w*?@U-64hj+)SNH%%BwPbx{2-1MUkSu>U{?*Twl0GmW<`*9Lp9sgy#r*N3#o=_zC0S3JImF6X2aQg633VC}$< zn)7cV27^ye7aYOu;t@*^3eExQ_GmcRNMQa+s=Hf#ZKmX=(Gm*_ejZ@hm7_+uH1q)rQg5Yi?aNYWhKh%X% zs}DAk3vNb)aT?hDfRe)O%9e(mdlPU8y*x4Y`yRQCmAVyLXPL2M8vt#XB2&v3(@|$T z900^`{)f$O)KY zQ}ecQp#7(*g+ocLFR>qZl*x{g%jFM8_fBjy$`uHrbhs$$^ggmHEJxgxGkf&pzn~xq z8$FFv3$5h~4)7f+i8aO?CoZZpyO79#{WU$gMI4L=1jH_wyu~g@Jl);(8BtRl{n|T) z_GLfgCs(1|r{L4o8{fXhTifSQ+(PX*BRtaXkVyG%N;CYngQusR4mc~n(wSp8fmL_e zhnY$@NKZ^761cVAlH8FCzJ<){<3vE zY7osqFRT7QwV<%#-_T}klOrP4aP&J-TU&6apD++FsPkUB=)jC{=c7^i6|)I{*Ykt| z)HrI!JtkHCF}3pLEvW#kt_T(BB{y}JaPjG$C(jEH9sr9975!i@*%rzzLwd+G+Pgr< zC--ONvBE{%yO?Z|YnD`fLtbl-xrd?r%$-8*-sYG(#^keo?|6x7ppIm)MW=iyMEsMq zob-MIVRDwSbGS;`b+^isGvkJRwkvBAJw>f)jBr`UGn&MJfg)Js*mJ=N-9=U-i~^hR zfqt?i zeL}5E=U^%;M5tqv3w@;~IRE)n&nnwnEg0{9!|^CW(O4op@AOZQB<1X!RbJWm4Z&Yp zQM8PP5AYoZfhdyLYZtk%0 za4I^7q&7e_>XZqJ&mFvT-B02exmn-HW6(RYr{0jZ{|s75u`8kie870&>UvLxz1hRa zM(0gRmx|e2?QXnMevP;;eH6negGvm}kaVFldM7(+OX)YmMeA#OV$HQ}gd6u}53ib3 zI;y(e%%_*zS^EYo7d`r>a*vaQt;x6AkKsSKYGq|O-7|&&v5px-kk}TMfgi*xON-v+wjxRUXq^sx7@H2U5XGhfBl%(TxKbPYy%mvN zWkzJxY1;HylUj|_QuKK#?B4cNnUe$RKEc*51?o&MsZdt}{ypOPTh~qc{7l|2jjeKn zR5>itR9iMEa9~*JDU~2aaJwiQ9k=)BB%?`k3-LL5ByrUPVjd+z4s*_}>^8fhJ?&PtMe`qkIF;2c^gF$obM(A#(d3uS}~Qm*@nH~_x!o7UX3nH&AZ@r zj6X0)(K>rA8ANfd*c;