• [ShareList] 是一个易用的网盘工具,支持快速挂载 GoogleDrive、OneDrive 、天翼云、蓝奏云等,可通过插件扩展功能。
  • 上个博客说明了如何安装下载 这期来介绍如何挂载
    主要功能:多种网盘系统快速挂载、支持虚拟目录和虚拟文件、支持目录加密、插件机制、国际化支持,WebDAV导出。因为支持天翼云盘和蓝奏云的挂载所以这篇文章就用 来分享下如何挂载。

# 简介

## 序

## 功能说明

  • 多种网盘系统快速挂载。
  • 支持虚拟目录和虚拟文件。
  • 支持目录加密。
  • 插件机制。
  • 国际化支持。
  • WebDAV导出。

准备

项目支持docker安装,但是推荐使用宝塔安装

  • 宝塔面板最新版本(php和nginx记得勾选安装)
  • 一个解析好的域名
  • 拥有你需要挂载的网盘账号密码

手动宝塔安装

git clone https://github.com/reruin/sharelist.git
cd /www/wwwroot/域名/sharelist && bash install.sh
cd /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

部署

以天翼云盘为例

请输入图片描述


挂载GoogleDrive

1. 使用分享ID挂载

*由[plugins/drive.gd.js]插件实现。

挂载标示:gd
挂载内容:分享的文件ID

2. 使用官方API挂载

由[plugins/drive.gd.api.js]插件实现。

挂载标示:oda
挂载内容:   
         OneDrive路径->应用ID|应用机钥|回调地址|refresh_token
         OneDrive路径
    /

建议填写/,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://***-my.sharepoint.cn/星号所示部分。

4. 挂载OneDrive For Business

由[plugins/drive.odb.js]插件实现。

挂载标示:odb  
挂载内容:分享的url

注意:单文件夹内最多显示30条结果。

挂载天翼云盘

1. 账号密码挂载(Cookie方式)

挂载标示:ctcc
挂载内容:  
    //用户名/初始文件夹ID?password=密码 
    /

建议填写/,ShareList将自动开启挂载向导,按指示填写用户名密码即可。

2. API方式挂载

挂载标示:ctc
挂载内容:   
    //应用ID/初始文件夹ID?app_secret=应用机钥&redirect_uri=回调地址&access_token=access_token   
    /

建议填写/,ShareList将自动开启挂载向导,按指示操作即可。
注意:access_token每隔30天需手动更新一次,到期前24小时内访问对应路径时会有更新提示。

3. 企业盘挂载

挂载标示:ctcb
挂载内容:  
    //用户名/初始文件夹ID?password=密码 
    /

建议填写/,ShareList将自动开启挂载向导,按指示填写用户名密码即可。

挂载和彩云

挂载标示:cy
挂载内容:  
    //用户名/初始文件夹ID?password=密码 
    /

建议填写/,ShareList将自动开启挂载向导,按指示填写用户名密码即可。

挂载本地文件

挂载标示:fs   
挂载内容:文件路径。

注意:统一使用unix风格路径,例如 windows D盘 为 /d/

挂载GitHub

挂载标示:github   
挂载内容: 
  username   
  username/repo

注意:仅用于浏览,不支持 git clone等git操作。

挂载蓝奏云

挂载标示:lanzou
挂载路径:  
  folderId  
  password@folderId
  自定义路径如 s/aaa111

注意:folderId是分享链接中bxxxxxx部分。

插件为 mp4/jpg等禁止上传的格式提供解析支持
只需在文件名后附加ct后缀即可。
以mp4为例,将xxx.mp4命名为xxx.mp4.ct后再上传
插件将自动解析为mp4文件。
插件可支持蓝奏自带的文件提取码功能。

挂载h5ai

挂载标示:h5ai   
挂载路径:http地址

例如: h5ai:https://larsjung.de/h5ai/demo/

挂载WebDAV

挂载路径:
https://webdavserver.com:1222/path
https://username:password@webdavserver.com:1222/path
https://username:password@webdavserver.com:1222/?acceptRanges=none

注意:若服务端不支持断点续传,需追加acceptRanges=none

挂载SFTP

挂载标示:sftp  
挂载路径:  
  //username:password@server:port/path

虚拟目录

在需创建虚拟目录处新建目录名.d.ln文件。
其内容为挂载标识:挂载路径。 指向本地/root的建虚拟目录

fs:/root`

指向GoogleDrive的某个共享文件夹虚拟目录

gd:0BwfTxffUGy_GNF9KQ25Xd0xxxxxxx

系统内置了一种单文件虚拟目录系统,使用yaml构建,以sld作为后缀保存。

虚拟文件

与虚拟目录类似,目标指向具体文件。在需创建虚拟文件处
新建文件名.后缀名.ln文件 其内容为挂载标识:挂载路径
如:创建一个ubuntu_18.iso的虚拟文件

目录加密

在需加密目录内新建 .passwd文件,type为验证方式,data为验证内容。
目前只支持用户名密码对加密
例如:

type: basic
    data:`
      user1:111111    
      user2:aaaaaa`

user1用户可使用密码111111验证,user2用户可使用密码aaaaaa验证。

流量中转

后台管理,常规设置,将中转(包括预览)设为启用即可实现中转代理。设置中转路径可对指定的路径(含子路径)启用中转,留空表示对所有路径有效。
注意,由于功能限制,以下挂载方式将强制使用中转模式:
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)的域名地址,例如 http://example.com/,因而你需要为运行sharelist的IP做域名解析,同时修改其运行端口为80或443(可在app/config.js中修改),强烈建议使用nginx进行代理。

负载均衡

挂载标示:lb
挂载路径:  
  用;分割多个路径地址

例如,已经在http://localhost/ahttp://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。

验证码相关

后台管理,常规设置,设置验证码识别接口后,可完成某些插件的自动打码,留空时系统默认使用https://api.reruin.net/ocr(tesseract,准确率一般) 完成打码。
自定义该接口需接收如下请求,{image:'base64 encoded image',type:'','lang':''}。

Nginx(Caddy)反代注意事项

**使用反代时,请添加以下配置。
Nginx**

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 上传文件大小限制。

如果使用上传功能,请调整 nginx 上传文件大小限制。

client_max_body_size 8000m;`

Caddy

header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}

设置反代,使用域名进行访问

请输入图片描述
请输入图片描述

这样就可以了,如果本教程成功帮你搭建完成,不妨点个赞,教程都是自己实践过,亲测可行的,图不是自己的,因为我又搭建了别的。希望可以的成功的小伙伴可以评论支持一下

补充ShareList (美化)

修改方法

1、改首页的logo

sharelist/app/views/default/index.pug 修改第10行为:

a.home(href='/')img(src='https://g.alicdn.com/teambition-site/site/images/header/logo-one.svg' height='30.0px')
|  Teambition
* 注意对齐的位置: 字母h 和 字母i 还有 竖线| 在同一条线
* 修改 “返回箭头” 颜色
* 将第9行的 `#333` 改为 `#53b0f6`

2、修改头部导航栏颜色

sharelist-mastersharelist-masterapppublicstylemain.less

修改第30行,将 `#c1c1c1` 改为 `#fff`

3、修改文件夹图标颜色

sharelist-mastersharelist-masterapppublicsvgfolder.svg

搜索8f8f8f 将 `#8f8f8f`修改为`#53b0f6`

4、修改图标颜色

sharelist-mastersharelist-masterapppublicstyleicon.less

将#8f8f8f修改为#53b0f6

5、给网页添加icon

  • sharelist-masterappviewsdefaultpartiallayout.pug
  • 在第6行后加
meta (property='og:image'content='https://www.teambition.com/favicon.ico')
link(rel='shortcut icon' href='https://www.teambition.com/favicon.ico')

6、修改底部两个按钮

sharelist-mastersharelist-masterappviewsdefaultpartialfooter.pug

7、console输出网站信息

  • sharelist/app/public/script/sort.js第47行添加下列代码
console.log("\n".concat(" %c Teambition 网盘挂载程序 v2.0 "), "color: #fadfa3; background: #030307; padding:5px 0;")
console.log("\n".concat(" %c William's Blog", " | ", "Copyright " + new Date().getFullYear() + " 本站保留所有权利 "), "color: #fadfa3; background: #030307; padding:5px 0;")

8、修改头部logo旁文字颜色

sharelist/app/public/style/main.less
第89行添加`color: #1b9aee;`
因为作者网站不能复制(包括代码也没办法复制),每次更换IP再查看又需要评论所以进行了转载,仅仅便于自己,如果原作者对此有疑问我会进行删除。
最后修改:2021 年 06 月 22 日 12 : 54 AM
如果觉得我的文章对你有用,请随意赞赏