ShareList is an easy-to-use netdisk tool which supports that quickly mount GoogleDrive and OneDrive, and extends functions with plugins.
-
Quickly mount various netdisks.
-
Support virtual directories and virtual files.
-
Support directory encryption.
-
Plug-in mechanism.
-
Internationalization support.
-
WebDAV export.
Implemented by plugins/drive.gd.js plugin.
Mounting mark: gd
Mounting content: shared file ID
Implemented by plugins/drive.gd.api.js plugin.
Mounting mark: gda
Mounting content:
//application ID/root?client_secret='client_secret'&redirect_uri='redirect_uri'&refresh_token='refresh_token'
/
It is recommended to fill in /
, ShareList will automatically start the mounting wizard, just follow the instructions.
Implemented by plugins/drive.od.js plugin.
Mounting mark: od
Mounting content: shared file ID.
Note: Up to 30 results are displayed in a single folder.
Implemented by plugins/drive.od.api.js plugin.
Mounting mark: oda
Mounting content:
OneDrive path->app_id|app_secret|redirect_uri|refresh_token
OneDrive path
/
It is recommended to fill in /
, ShareList will automatically start the mounting wizard, just follow the instructions.
For domain names that do not meet OneDrive's security requirements, the transfer method will be used for verification. View transfer page
Note: Due to onedrive's revised policy, personal Microsoft accounts can no longer be bound through the wizard.
You need to go to Azure Background Management to register the application and get app_id
and app_secret
Implemented by plugins/drive.odc.api.js plugin.
Mounting mark: odc
Mounting content:
//app_id/path?client_secret='client_secret'&redirect_uri='redirect_uri'&refresh_token='refresh_token'&tenant='organization name'
/
It is recommended to fill in /
, ShareList will automatically start the mounting wizard, just follow the instructions.
Note: The organization name refers to the part shown in the https://***-my.sharepoint.cn/
asterisk in the web disk access link.
Implemented by plugins/drive.odb.js plugin.
Mounting mark: odb
Mounting content: shared url
Note: Up to 30 results will be displayed in a single folder.
Implemented by drive.189cloud.js plugin.
Mounting mark: ctcc
Mounting content:
//username/'initial folderID'?password='password'
/
It is recommended to fill in /
, ShareList will automatically start the mount wizard, and follow the instructions to fill in the username and password.
Implemented by drive.189cloud.api.js plugin.
Mounting mark: ctc
Mounting content:
//app_id/'initial folderID'?app_secret='app_secret'&redirect_uri='redirect_uri'&access_token='access_token'
/
It is recommended to fill in /
, ShareList will automatically start the mounting wizard, just follow the instructions.
Note: The access_token needs to be updated manually every 30 days, and there will be an update prompt when accessing the corresponding path within 24 hours before the expiration.
Implemented by drive.fs.js plugin.
Mounting indication: fs
Mounting content: file path.
Note: Unix-style paths are used uniformly, for example, D drive in Windows is /d/
.
Implemented by plugins/drive.github.js plugin. Used to access the GitHub code base. There are the following two mounting methods.
Mounting mark: github
Mounting content:
username
username/repo
Note: The method is only for browsing, does not support git operations such as git clone
.
Implemented by plugins/drive.lanzou.js plugin. Provide access which supports for LanZou Yun.
Mounting mark: lanzou
Mount path:
folderId
password@folderId
Note: folderId
is thebxxxxxx
part of the sharing link.
The plug-in provides parsing support for formats that are prohibited to upload, such as mp4/jpg
, just append the suffix txt
to the file name. Take mp4 as an example, namexxx.mp4
as xxx.mp4.txt
and upload it again, the plugin will automatically parse into mp4 file.
Implemented by the drive.h5ai.js plug-in, used to access the h5ai directory program.
Mounting indication: h5ai
Mounting path: http address
For example: h5ai:https://larsjung.de/h5ai/demo/
Implemented by drive.webdav.js plugin, used to access WebDAV services.
Mounting mark: webdav
Mounting path:
https://webdavserver.com:1222/path
https://username:[email protected]:1222/path
https://username:[email protected]:1222/?acceptRanges=none
Note: If the server does not support resuming of the breakpoint, you need to add acceptRanges=none
Create a new directory name.d.ln
file where the virtual directory needs to be created. Its content is Mounting ID:Mounting path
.
Point to the local /root
virtual directory.
fs:/root
Point to a virtual directory of a shared folder on GoogleDrive
gd:0BwfTxffUGy_GNF9KQ25Xd0xxxxxxx
The system has a built-in single file virtual directory system, built using yaml, and saved with sld
as a suffix. Refer to example/ShareListDrive.sld.
Similar to a virtual directory, the target points to a specific file.
Create a new file ".filename.suffix.ln"
where the virtual file needs to be created. Its content is Mounting ID: Mounting path
.
For example: to create a virtual file of ubuntu_18.iso
, please refer to example/linkTo_download_ubuntu_18.iso.ln.
Create a new .passwd
file in the directory to be encrypted, type
is the verification method, and data
is the verification content.
Currently only supports username and password encryption (implemented by auth.basic plugin).
E.g:
type: basic
data:
-user1: 111111
-user2: aaaaaa
user1
user can use password111111
to verify, user2
user can use passwordaaaaaa
to verify. Please refer to example/secret_folder/.passwd.
In Background management -> General settings
, set transfer (including preview)
to enable to achieve transfer agent. transit path
can enable transit for the specified path (including sub-paths), leaving blank means it is valid for all paths.
Note that due to functional limitations, the following mounting methods will force the use of transit mode:
OneDrive For Business(Mounted by ID), GoogleDriveAPI, GoogleDrive(Mounted by ID)
When the proxy mode is enabled, you can set the proxy server in Background management -> General settings
. After setting, all download requests will be transferred through this server, and currently support cf-worker.
Copy the script from proxy/cf-worker.js, modify HOST
as the access address of sharelist, andTOKEN
as the access password of the Background Managerment. Create a cf-worker with this content, and then save the cf-worker address (https://**.workers.dev
) to the sharelist background.
Note that due to Cloudflare restrictions, HOST
must be a domain name address using a standard port (80,443), such ashttp://example.com /
, so you need to make a A(AAAA) record in DNS for sharelist IP , and changes its running port to 80 or 443 (can be modified in app/config.js). It is strongly recommended to use nginx as a proxy.
Implemented by drive.lb.js plugin. Used to forward requests to multiple peer network drives.
Mounting mark: lb
Mounting path:
Use ; to split multiple path addresses
For example, two network drives with the same content have been mounted on the paths http://localhost/a
andhttp://localhost/b
. It is merged into the path of http://localhost/c
, and at the virtual path in the background, select the load balancer type, and fill in the mounting path as/a;/b
Note: After the load directory is created, its target directory will be automatically hidden (visible in administrator mode).
In Background management -> General settings
, Ignore File Extensions
can define the file types to be ignored. For example, ignore the picture: jpg, png, gif, webp, bmp, jpeg
.
In Background management -> General settings
, set Display README content
to enable, when the current directory contains README.md
, it will be automatically displayed on the page.
In Background management -> General settings
, set Preview
to enable to preview specific files.
Implemented by preview.document plugin, you can preview file type such as md, word, ppt, excel.
Implemented by preview.media plugin, you can preview pictures, audio and video.
In Background management -> Plug-in Settings
, Video Previewable Formats
can be defined to preview the video type.
Implemented by preview.torrent plugin, you can preview online preview for torrent files.
In the login status (the upload button will appear at the top of the page), you can upload files/directories to the local drive(fs), OneDriveAPI(oda), and GoogleDriveAPI(gda).
It is currently in an experimental stage, and various types of anomalies may occur.
The mount source can be transferred out in WebDAV mode, and currently supports list and download functions.
The webDAV path can be set in the Background management -> General settings
.
In Background management -> General settings
, after setting Download Link Max Age
, the download link will be expiration within this time period.
To turn off this feature, set to 0.
While using reverse proxy, please add the following configuration.
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;
If you need to use the upload feature, please adjust the nginx upload file size limit.
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}
To be continued
Install
bash install.sh
Remote install/Netinstall
wget --no-check-certificate -qO- https://raw.githubusercontent.com/reruin/sharelist/master/netinstall.sh | bash
Update
bash update.sh
Install
docker build -t yourname/sharelist .
docker run -d -v /etc/sharelist:/app/cache -p 33001:33001 --name="sharelist" yourname/sharelist
OR
docker-compose up
Update
docker pull reruin/sharelist:latest
Visit http://localhost:33001
WebDAV directory http://localhost:33001/webdav