标题是不是很牛皮,确实,作者的思路非常符合我的心意,把网盘集合起来,还能省域名,对不对i( •̀ ω •́ )✧
搭建sharelist
简介序功能说明准备手动宝塔安装docker安装部署以天翼云盘为例挂载GoogleDrive1. 使用分享ID挂载2. 使用官方API挂载挂载OneDrive1. 使用分享ID挂载2. 使用官方API挂载3. 使用官方API挂载世纪互联4. 挂载OneDrive For Business挂载天翼云盘1. 账号密码挂载(Cookie方式)2. API方式挂载3. 企业盘挂载挂载和彩云挂载本地文件挂载GitHub挂载蓝奏云挂载h5ai挂载WebDAV挂载SFTP虚拟目录虚拟文件目录加密流量中转自定义中转1. cf-worker负载均衡忽略文件类型显示README文件预览文档类多媒体Torrent文件目录上传WebDAV导出下载链接有效期验证码相关Nginx(Caddy)反代注意事项设置反代,使用域名进行访问简介
序
ShareList 是一个易用的网盘工具,支持快速挂载 GoogleDrive、OneDrive ,可通过插件扩展功能。
项目:/reruin/sharelist
功能说明
多种网盘系统快速挂载。支持虚拟目录和虚拟文件。支持目录加密。插件机制。国际化支持。WebDAV导出。准备
项目支持docker安装,但是推荐使用宝塔安装
宝塔面板最新版本(php和nginx记得勾选安装)一个解析好的域名拥有你需要挂载的网盘账号密码
手动宝塔安装
#下载源码安装git clone /reruin/sharelist.gitcd /www/wwwroot/域名/sharelist && bash install.shcd /www/wwwroot/域名/sharelist && bash update.sh
完成后,访问http://ip:33001
docker安装
docker build -t yourname/sharelist .docker run -d -v /etc/sharelist:/app/cache -p 33001:33001 --name="sharelist" yourname/sharelist
或者用
docker-compose up
完成后,同样访问http://ip:33001
部署
以天翼云盘为例
进入http://ip:33001
之后,滑到最下边,
这里推荐第三个空填/
,只添一个/
,天翼云盘有点毛病,你按图中那么写,即使填的都对,也搭建不成功,所以推荐填/
,后面直接访问网站的时候,会有引导。当然,其他的比如和彩云都可以填/
挂载GoogleDrive
1. 使用分享ID挂载
由plugins/drive.gd.js插件实现。
挂载标示:gd挂载内容:分享的文件ID
2. 使用官方API挂载
由plugins/drive.gd.api.js插件实现。
挂载标示:gda 挂载内容: //应用ID/root?client_secret=应用机钥&redirect_uri=回调地址&refresh_token=refresh_token /
建议填写/
,ShareList将自动开启挂载向导,按指示操作即可。
挂载OneDrive
1. 使用分享ID挂载
由plugins/drive.od.js插件实现。
挂载标示:od 挂载内容:分享的文件ID。
注意:单文件夹内最多显示30条结果。
2. 使用官方API挂载
由plugins/drive.od.api.js插件实现。
挂载标示:oda挂载内容: OneDrive路径->应用ID|应用机钥|回调地址|refresh_tokenOneDrive路径/
建议填写/
,ShareList将自动开启挂载向导,按指示操作即可。
对于不符合OneDrive安全要求的域名,将采用中转方式验证,查看中转页面。
注意:由于onedrive修改了政策,个人Microsoft帐户已无法通过向导进行绑定。 需前往 Azure管理后台 注册应用并获取 app_id 和 app_secret 。
3. 使用官方API挂载世纪互联
由plugins/drive.odc.api.js插件实现。
挂载标示:odc挂载内容: //应用ID/路径?client_secret=应用机钥&redirect_uri=回调地址&refresh_token=refresh_token&tenant=组织名 /
建议填写/
,ShareList将自动开启挂载向导,按指示操作即可。
注意:组织名是指网盘访问链接中https://***-/
星号所示部分。
4. 挂载OneDrive For Business
由plugins/drive.odb.js插件实现。
挂载标示:odb 挂载内容:分享的url
注意:单文件夹内最多显示30条结果。
挂载天翼云盘
1. 账号密码挂载(Cookie方式)
由drive.189cloud.js插件实现。
挂载标示:ctcc挂载内容: //用户名/初始文件夹ID?password=密码 /
建议填写/
,ShareList将自动开启挂载向导,按指示填写用户名密码即可。
2. API方式挂载
由drive.189cloud.api.js插件实现。
挂载标示:ctc挂载内容: //应用ID/初始文件夹ID?app_secret=应用机钥&redirect_uri=回调地址&access_token=access_token /
建议填写/
,ShareList将自动开启挂载向导,按指示操作即可。
注意:access_token每隔30天需手动更新一次,到期前24小时内访问对应路径时会有更新提示。
3. 企业盘挂载
由drive.189cloud.business.js插件实现。
挂载标示:ctcb挂载内容: //用户名/初始文件夹ID?password=密码 /
建议填写/
,ShareList将自动开启挂载向导,按指示填写用户名密码即可。
挂载和彩云
由drive.caiyun.js插件实现。
挂载标示:cy挂载内容: //用户名/初始文件夹ID?password=密码 /
建议填写/
,ShareList将自动开启挂载向导,按指示填写用户名密码即可。
挂载本地文件
由drive.fs.js插件实现。
挂载标示:fs 挂载内容:文件路径。
注意:统一使用unix风格路径,例如 windows D盘 为/d/
。
挂载GitHub
由plugins/drive.github.js插件实现。用于访问GitHub代码库。有以下两种挂载方式。
挂载标示:github 挂载内容: username username/repo
注意:仅用于浏览,不支持git clone
等git操作。
挂载蓝奏云
由plugins/drive.lanzou.js插件实现。提供对蓝奏云的访问支持。
挂载标示:lanzou挂载路径: folderId password@folderId自定义路径如 s/aaa111
注意:folderId
是分享链接中bxxxxxx
部分。
插件为mp4/jpg
等禁止上传的格式提供解析支持,只需在文件名后附加ct
后缀即可。以mp4为例,将xxx.mp4
命名为xxx.mp4.ct
后再上传,插件将自动解析为mp4文件。
插件可支持蓝奏自带的文件提取码功能。
挂载h5ai
由drive.h5ai.js插件实现,用于访问h5ai目录程序。
挂载标示:h5ai 挂载路径:http地址
例如:h5ai:https://larsjung.de/h5ai/demo/
挂载WebDAV
由drive.webdav.js插件实现,用于访问WebDAV服务。
挂载标示:webdav 挂载路径: :1222/path https://username:password@:1222/path https://username:password@:1222/?acceptRanges=none
注意:若服务端不支持断点续传,需追加acceptRanges=none
挂载SFTP
由drive.sftp.js插件实现,用于访问支持SSH文件传输协议的服务。
挂载标示:sftp 挂载路径: //username:password@server:port/path
虚拟目录
在需创建虚拟目录处新建目录名.d.ln
文件。 其内容为挂载标识:挂载路径
。
指向本地/root
的建虚拟目录
fs:/root
指向GoogleDrive的某个共享文件夹虚拟目录
gd:0BwfTxffUGy_GNF9KQ25Xd0xxxxxxx
系统内置了一种单文件虚拟目录系统,使用yaml构建,以sld
作为后缀保存。参考example/ShareListDrive.sld。
虚拟文件
与虚拟目录类似,目标指向具体文件。
在需创建虚拟文件处新建文件名.后缀名.ln
文件。 其内容为挂载标识:挂载路径
。
如:创建一个ubuntu_18.iso
的虚拟文件,请参考example/linkTo_download_ubuntu_18.iso.ln。
目录加密
在需加密目录内新建.passwd
文件,type
为验证方式,data
为验证内容。
目前只支持用户名密码对加密(由auth.basic插件实现)。
例如:
type: basic data: - user1:111111 - user2:aaaaaa
user1
用户可使用密码111111
验证,user2
用户可使用密码aaaaaa
验证。请参考example/secret_folder/.passwd。
流量中转
后台管理,常规设置,将中转(包括预览)
设为启用即可实现中转代理。设置中转路径
可对指定的路径(含子路径)启用中转,留空表示对所有路径有效。
注意,由于功能限制,以下挂载方式将强制使用中转模式:OneDrive For Business(id挂载)、GoogleDriveAPI、GoogleDrive(id挂载)
自定义中转
在启用中转模式时,可在后台管理->常规设置中,设置中转服务器。设置后所有下载请求均将通过此服务器中转,目前支持cf-worker。
1. cf-worker
从proxy/cf-worker.js中复制脚本,修改HOST
为sharelist的访问地址,TOKEN
为管理后台的访问口令。以此为内容创建cf worker,之后将cf-worker地址(https://**.workers.dev
)保存到sharelist后台。
注意,由于Cloudflare限制,HOST
必须是使用标准端口(80,443)的域名地址,例如/
,因而你需要为运行sharelist的IP做域名解析,同时修改其运行端口为80或443(可在app/config.js中修改),强烈建议使用nginx进行代理。
负载均衡
由drive.lb.js插件实现。用于将请求转发到多个对等的网盘。
挂载标示:lb挂载路径: 用;分割多个路径地址
例如,已经在http://localhost/a
和http://localhost/b
路径上挂载了内容相同的两个网盘,需要将两者的请求其合并到http://localhost/c
路径下,在后台虚拟路径处,选择LoadBalancer类型,挂载路径填写为/a;/b
即可。
注意:负载目录建立后,其目标目录将被自动隐藏(管理员模式可见)。
忽略文件类型
后台管理,常规设置,忽略文件类型
可定义忽略的文件类型。例如忽略图片:jpg,png,gif,webp,bmp,jpeg
。
显示README
后台管理,常规设置,将显示README.md内容
设为启用,当前目录包含README.md
时,将自动显示在页面。
文件预览
后台管理,常规设置,将详情预览
设为启用即可对特定文件进行预览。目前支持:
文档类
由preview.document插件实现,可预览md、word、ppt、excel。
多媒体
由preview.media插件实现,可预览图片、音频、视频提供。
后台管理,插件设置,支持预览的视频后缀
可定义可预览视频类型。
Torrent
由preview.torrent插件实现,为种子文件提供在线预览。
文件目录上传
在登录状态(页面顶部会出现上传按钮),可向 本地磁盘(fs)、OneDriveAPI(oda)、GoogleDriveAPI(gda) 上传文件/目录。
目前处于实验性阶段,可能出现各类异常。
WebDAV导出
可将挂载源以WebDAV方式转出,目前支持列表、下载功能。可在 后台管理->常规设置里 设置webDAV路径。
下载链接有效期
后台管理,常规设置,设置下载链接有效期
后,下载链接将在此时间段内有效。若要关闭此功能,请设置为0。
验证码相关
后台管理,常规设置,设置验证码识别接口
后,可完成某些插件的自动打码,留空时系统默认使用/ocr
(tesseract,准确率一般) 完成打码。
自定义该接口需接收如下请求,{image:'base64 encoded image',type:'','lang':''}
。
Nginx(Caddy)反代注意事项
使用反代时,请添加以下配置。
Nginx
proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Range $http_range;proxy_set_header If-Range $http_if_range;proxy_no_cache $http_range $http_if_range;
如果使用上传功能,请调整 nginx 上传文件大小限制。
client_max_body_size 8000m;
Caddy
header_upstream Host {host}header_upstream X-Real-IP {remote}header_upstream X-Forwarded-For {remote}header_upstream X-Forwarded-Proto {scheme}
设置反代,使用域名进行访问
这样就可以了,如果本教程成功帮你搭建完成,不妨点个赞,教程都是自己实践过,亲测可行的,图不是自己的,因为我又搭建了别的。不想重新在整一遍,(●ˇ∀ˇ●)哈哈