/sharelist

快速分享 GoogleDrive OneDrive

Primary LanguageJavaScriptApache License 2.0Apache-2.0

ShareList

ShareList 是一个易用的网盘工具,支持快速挂载 GoogleDrive、OneDrive ,可通过插件扩展功能。

目录

功能说明

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

使用示例

挂载GoogleDrive

1. 使用分享ID挂载

plugins/drive.gd.js插件实现。

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

2. 使用官方API挂载

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

挂载标示:gda  
挂载内容:  
  文件(夹)id->应用ID|应用机钥|回调地址|refresh_token     
  文件(夹)id   
  /

ShareList会根据填写的挂载内容的不同形式,自动开启挂载向导,按指示操作即可。

挂载OneDrive

1. 使用分享ID挂载

plugins/drive.od.js插件实现。

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

2. 使用官方API挂载

plugins/drive.od.api.js插件实现。

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

ShareList会根据填写的挂载内容,自动开启挂载向导,按指示操作即可。
对于不符合OneDrive安全要求的域名,将采用中转方式验证,查看中转页面
注意:由于onedrive修改了政策,个人Microsoft帐户已无法通过向导进行绑定。 需前往 Azure管理后台 注册应用并获取 app_id 和 app_secret 。

3. 挂载OneDrive For Business

plugins/drive.odb.js插件实现。

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

挂载本地文件

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

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

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

挂载h5ai

drive.h5ai.js插件实现,用于访问h5ai目录程序。

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

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

挂载WebDAV

drive.webdav.js插件实现,用于访问WebDAV服务。

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

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

虚拟目录

在需创建虚拟目录处新建目录名.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

流量中转

后台管理,常规设置,将中转(包括预览)设为启用即可实现中转代理。

忽略文件类型

后台管理,常规设置,忽略文件类型可定义忽略的文件类型。例如忽略图片:jpg,png,gif,webp,bmp,jpeg

显示README

后台管理,常规设置,将显示README.md内容设为启用,当前目录包含README.md时,将自动显示在页面。

文件预览

后台管理,常规设置,将详情预览设为启用即可对特定文件进行预览。目前支持:

文档类

preview.document插件实现,可预览md、word、ppt、excel。

多媒体

preview.media插件实现,可预览图片、音频、视频提供。
后台管理,插件设置,支持预览的视频后缀可定义可预览视频类型。

Torrent

preview.torrent插件实现,为种子文件提供在线预览。

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;

Caddy

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

插件开发

待完善

安装

Shell

bash install.sh

远程安装 / Netinstall

wget --no-check-certificate -qO-  https://raw.githubusercontent.com/reruin/sharelist/master/netinstall.sh | bash

更新 / Update

bash update.sh

Docker support

docker build -t yourname/sharelist .

docker run -d -v /etc/sharelist:/app/cache -p 33001:33001 --name="sharelist" yourname/sharelist

OR

docker-compose up

访问 http://localhost:33001 WebDAV 目录 http://localhost:33001/webdav

Heroku

Deploy