GitHub

您所在的位置:网站首页 阿里api管理工具有哪些功能 GitHub

GitHub

2024-07-01 06:57| 来源: 网络整理| 查看: 265

MDrive

多平台、模块化、可挂载、安全、加密的云盘自动同步、备份工具,支持本地存储、阿里云盘等,支持镜像、备份等同步模式,完全免费开源。

提供 Docker、Windows、Linux、macOS、Web 等多平台版本。

支持 AES256-GCM、ChaCha20-Poly1305 加密,支持 Zstd、LZ4、Snappy 压缩,支持 SHA256、BLAKE3 等哈希算法,任何第三方、服务商都无法查看数据,保护您的数据安全和隐私。

安装与使用 快速启动

Docker 版本

# 阿里云镜像(推荐国内使用) docker pull registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive docker run --name mdrive -d --restart=always \ -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \ -p 8080:8080 --user root \ -e TZ=Asia/Shanghai \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive # Docker Hub 镜像 docker pull trueaiorg/mdrive docker run --name mdrive -d --restart=always \ -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \ -p 8080:8080 --user root \ -e TZ=Asia/Shanghai \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ trueaiorg/mdrive # GitHub 镜像 docker pull ghcr.io/trueai-org/mdrive docker run --name mdrive -d --restart=always \ -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \ -p 8080:8080 --user root \ -e TZ=Asia/Shanghai \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ ghcr.io/trueai-org/mdrive # 演示站点启动配置 docker pull registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive docker run --name mdrive -d --restart=always \ -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \ -e DEMO=true \ -p 8080:8080 --user root \ -v /root/mdrive/data:/app/data:rw \ -e TZ=Asia/Shanghai \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive

Windows 版本

a. 通过 https://github.com/trueai-org/mdrive/releases 下载 windows 最新免安装版,例如:MDrvie-win-x64.zip b. 解压并执行 MDriveSync.Client.API.exe c. 打开网站 http://localhost:8080/ d. 安装为系统服务(可选),右键文件以管理员身份运行 `一键安装或卸载*.bat`,选择安装或卸载服务。 e. 部署到 IIS(可选),在 IIS 添加网站,将文件夹部署到 IIS,配置应用程序池为`无托管代码`,启动网站。 f. 使用系统自带的 `任务计划程序`(可选),创建基本任务,选择 `.exe` 程序即可,请选择`请勿启动多个实例`,保证只有一个任务执行即可。 g. 磁盘挂载支持(可选),下载并安装驱动(http://localhost:8080/driver/Dokan_x64.msi),将云盘挂载到本地,像管理本地文件一样管理远程文件。

Linux 版本

a. 通过 https://github.com/trueai-org/mdrive/releases 下载 linux 最新免安装版,例如:MDrive-linux-x64.zip b. 解压到当前目录: tar -xzf MDrive-linux-x64-.tar.gz c. 执行: run_app.sh c. 启动方式1: sh run_app.sh d. 启动方式2: chmod +x run_app.sh && ./run_app.sh

macOS 版本

a. 通过 https://github.com/trueai-org/mdrive/releases 下载 macOS 最新免安装版,例如:MDrive-osx-x64.zip b. 解压到当前目录: tar -xzf MDrive-osx-x64-.tar.gz c. 执行: run_app_osx.sh c. 启动方式1: sh run_app_osx.sh d. 启动方式2: chmod +x run_app_osx.sh && ./run_app_osx.sh 在线预览

账号:admin,密码:123456

http://8.138.19.239:8080

作业 挂载 macOS

压缩与加密 对称加密方法 https://soatok.blog/2020/07/12/comparison-of-symmetric-encryption-methods/ AEAD 加密 https://libsodium.gitbook.io/doc/secret-key_cryptography/aead 压缩分析 https://kopia.io/docs/advanced/compression/ 压缩算法 https://tech.meituan.com/2021/01/07/pack-gzip-zstd-lz4.html LZ4 - lz4.org https://github.com/lz4/lz4 Facebook zstd https://github.com/facebook/zstd Google snappy https://github.com/google/snappy

文件加密模式

文件打包加密模式

Docker 部署

近期 Docker Hub 国内无法使用,可以使用 https://docker.m.daocloud.io 加速,或使用阿里云镜像。

https://hub.docker.com/r/trueaiorg/mdrive

从阿里云 Registry 中拉取镜像

docker pull registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive:[镜像版本号]

从 Docker Hub 中拉取镜像

docker pull trueaiorg/mdrive:[镜像版本号]

从 GitHub Registry 中拉取镜像

docker pull ghcr.io/trueai-org/mdrive:[镜像版本号]

# 拉取镜像 docker pull trueaiorg/mdrive # 快速启动并开启只读模式 docker run --name mdrive -d --restart=always \ -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \ -e READ_ONLY=true \ -p 8080:8080 trueaiorg/mdrive # 快速启动完整示例2,持久化、映射配置、只读、账号密码 # 如果需要,更改目录权限 sudo chmod -R 777 /home/mdrive/db docker run --name mdrive -d --restart=always \ -v /home/mdrive/appsettings.json:/app/appsettings.json:rw \ -v /home/mdrive/db:/app/db:rw \ -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \ -e READ_ONLY=true \ -p 18080:8080 --user root trueaiorg/mdrive # 确保目录存在 # 确保映射/挂载了备份目录 # 创建云盘存储目录 mkdir /home/mdrive cd /home/mdirve # 创建配置文件(可选) vi appsettings.json # 确保配置具有可写配置权限 appsettings.json chmod 666 appsettings.json # 快速启动示例,并挂载 /data 目录到容器 /data 只读模式,并映射端口 8080 docker run --name mdrive -d --restart=always \ -v /home/mdrive/appsettings.json:/app/appsettings.json:rw \ -v /data:/data:ro \ -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \ -p 8080:8080 --user root trueaiorg/mdrive # 调试日志 docker logs mdrive # 进入容器 docker exec -it mdrive /bin/bash # 访问端口 http://{ip}:8080 # 更多示例 # 配置日志、映射云盘配置、映射程序配置、挂载 /data mkdir /home/mdrive/logs docker run --name mdrive -d --restart=always \ -v /home/mdrive/appsettings.json:/app/appsettings.json:rw \ -v /home/mdrive/logs:/app/logs \ -v /home/mdrive/db:/app/db \ -v /data:/data:ro \ -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \ -p 8080:8080 --user root trueaiorg/mdrive # 更多权限,容器内以 root 用户启动:--user root Windows 服务部署

下载 MDrive 并解压,运行 .exe 程序即可。

作为服务后台执行: 可使用系统自带的 任务计划程序,创建基本任务,选择 .exe 程序即可,请选择请勿启动多个实例,保证只有一个任务执行即可。 可使用其他服务后台启动,例如:nssm、sc、winsw、iis 等。 特性 [√] 不限速,阿里云盘官方接口支持,上传下载均不限速。 [√] 挂载云盘支持,支持将云盘挂载到本地,作为本地硬盘使用。 [√] 多线程支持,多线程上传、下载、同步,充分利用带宽。 [√] 定时作业,定时同步、还原、备份等。 [√] 在线云盘文件管理。 [√] 免费、开源 [√] 跨平台,支持 Windows、Linux、Unix、Mac、Android、Docker 等平台。 [√] 快速校验,多种算法支持 sha1、sha256、md5、blake3 等。 [√] 安全,加密 [√] 多账号支持,多阿里云盘账号支持 [√] 多作业计划支持,可以配置多个同步时间点。 [√] 多种同步方式:镜像、备份 [√] 极速,采用安全极速的差异算法,极速实现同步。 [√] 支持秒传 [√] 支持过滤本地文件/文件夹,丰富的校验规则。 [√] 高性能,采用 .NET8 最新技术,极致的性能体现,低内存、高性能、跨平台。 [√] WebUI 可视化配置 [√] WebUI 前后端分离,保证了后台服务的高可用。 [√] 支持只读模式,只读模式启动服务,则不可以编辑配置。 [√] 支持自定义端口。 [√] 支持回收站功能,支持删除文件/夹到回收站。 [√] WebUI 支持多主题,支持黑色模式。 [√] 支持云盘管理和在线下载文件。 [√] 支持作业暂停、恢复、禁用、取消、删除等。 [√] 支持队列,保证作业的高可用,避免多任务卡顿以及抢占资源问题。 [√] 支持登录验证,下载验证。 [√] 支持从配置文件中启动作业。 [√] 支持将云盘挂载到本地,像管理本地文件一样管理远程文件。 [√] 支持将备份目录挂载到本地。 [√] 支持快照,支持快照挂载。 [√] 支持导入/导出配置。 [√] 支持还原/下载云盘文件。 启动配置 只读模式:WebUI 下如果开启只读模式,则允许编辑和修改,只能查看,默认 ReadOnly: false。使用方式,可以通过修改 appsettings.json 或 docker 使用环境变量 -e READ_ONLY=true。 基础认证:WebUI 账号和密码,如果开启则打开网站管理后台时需要输入账号和密码,默认启用 BasicAuth。使用方式,可以通过修改 appsettings.json 或 docker 使用环境变量 -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456。 演示模式:网站配置为演示模式,只能查看和下载,功能受限,默认 Demo: null。使用方式,可以通过修改 appsettings.json 或 docker 使用环境变量 -e DEMO=true。 调试模式:非正式版(alpha、beta、rc)默认输出调试错误代码行号,正式版不包含 .pdb 文件。 系统配置

默认 appsettings.json 与 appsettings.Example.json 示例配置。

如果您通过 Docker 启动或简单使用则无需关心此配置。

# appsettings.Example.json 示例配置 { // 网站配置为只读模式 "ReadOnly": null, // 网站配置为演示模式 "Demo": null, // 网站登录授权账号密码 "BasicAuth": { "User": "", "Password": "" }, "Client": { // 阿里云盘默认启动时加载的配置项(可选) "AliyunDrives": [ { "Id": "1", "Name": "云盘1", "TokenType": "Bearer", "AccessToken": "", "RefreshToken": "【1】这里输入授权令牌", "ExpiresIn": 7200, "Jobs": [ { "Id": "1", "Name": "test", "Description": "", "State": 0, "Schedules": [ "【2】这里是备份计划时间,例如每分钟执行:0 * * * * ?" ], "Filters": [ "/Recovery/", "/System Volume Information/", "/Boot/", "/$RECYCLE.BIN/", "/@Recycle/", "/@Recently-Snapshot/", "**/node_modules/**", "*.duplicatidownload" ], "Sources": [ "【3】这里输入备份的文件夹,可填写多个路径,注意:windows 路径,例如:E:\\test" ], "Target": "【4】这里输入云盘备份目录,例如:backups/test", "Restore": "E:\\kopia_restore", "RapidUpload": true, "DefaultDrive": "backup", "CheckAlgorithm": "sha256", "CheckLevel": 1, "FileWatcher": true, "Order": 0, "IsTemporary": false, "IsRecycleBin": false, "UploadThread": 0, "DownloadThread": 0 } ] } ] }, // 日志输出 "Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "Default": "Warning", "System": "Warning", "Microsoft": "Warning" } }, "WriteTo": [ // 是否将日志输出到文件 { "Name": "File", "Args": { "path": "logs/log.txt", "rollingInterval": "Day", "fileSizeLimitBytes": null, "rollOnFileSizeLimit": false, "retainedFileCountLimit": 31 } }, // 是否将日志输出到控制台 { "Name": "Console" } ] }, // 系统日志配置 "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "urls": "http://*:8080" // 默认程序启动的端口 }

注意系统日志路径配置,不同操作系统之间的差异。

# window "path": "logs\\log.txt" # linux "path": "logs/log.txt"

默认 Client 配置(可选,默认无需配置)

RefreshToken 为必填项,其他不用填写。点击获取授权令牌,或登录官网获取授权令牌。 Jobs 可以配置多个作业,计划中的作业时间可以可以配置多个时间点。 Sources 备份源目录列表,可以配置多个备份源,必填 Target 云盘存储目录,必填 Schedules 定时计划,可配置多个计划时间 IsTemporary 是否为临时任务或一次性的同步任务,也表示是否立即执行,如果为 true,则启动时立即执行作业 State 作业状态,例如:100 表示暂停,0 表示未开始 Mode 同步模式,0 镜像同步(以本地为主,远程为镜像,删除不一致冗余的远程文件),1 冗余同步(同步到远程,不删除远程文件) { "Client": { // 客户端备份/同步配置 "AliyunDrives": [ // 阿里云盘配置 { "Name": "云盘1", // 云盘名称 "TokenType": "Bearer", // 令牌类型,这里是Bearer类型 "AccessToken": "your_access_token", // 访问令牌,用于API访问 "RefreshToken": "your_refresh_token", // 【必填】刷新令牌,用于获取新的访问令牌 "ExpiresIn": 7200, // 令牌过期时间,单位为秒 "Metadata": "", // 阿里云盘元信息,如用户信息、云盘信息、VIP信息等 "Jobs": [ // 作业列表 { "Id": "1", // 任务 ID "Name": "gpkopia", // 任务/作业名称 "Description": "", // 作业描述 "State": 0, // 作业状态,例如:100 表示暂停,0 表示未开始 "Mode": 0, // 同步模式,0 镜像同步,1 冗余同步 "Schedules": [ // 【必填】定时计划,使用cron表达式定义 "0 0/10 * * * ?" ], "Filters": [ // 文件过滤列表 "**/logs/*" ], "Sources": [ // 【必填】源目录列表 "E:\\kopia" ], "Target": "backups/gp", // 【必填】目标存储目录 "Restore": "E:\\kopia_restore", // 还原目录 "RapidUpload": true, // 是否启用秒传功能 "DefaultDrive": "backup", // 默认备份的云盘类型,备份盘或资源盘 "CheckAlgorithm": "sha256", // 文件对比检查算法 "CheckLevel": 1, // 文件差异算法检查级别 "FileWatcher": true, // 是否启用文件系统监听 "Order": 0, // 任务显示顺序 "IsTemporary": false, // 是否为临时任务,是否立即执行 "IsRecycleBin": false, // 是否启用删除到回收站 "UploadThread": 0, // 上传并行任务数 "DownloadThread": 0, // 下载并行任务数 "Metadata": "" // 作业元信息 }, // 更多作业配置... ] } ] } } # 管理后台账号密码 # 可以通过配置,直接修改管理后台账号密码。在 docker 启动时,也可以通过环境变量设置。 { "BasicAuth": { "User": "admin", "Password": "123456" } }

Schedules 作业计划任务示例

// cron 表达式 基于 Quartz 3.8.0 // https://www.bejson.com/othertools/cron/ // 每 5 秒 0/5 * * * * ? // 每分钟 0 * * * * ? // 每 5 分钟 0 0/5 * * * ? // 每 10 分钟 0 0/10 * * * ? // 每天 9 点 0 0 9 * * ? // 每天 8 点 10 分 0 10 8 * * ?

Filters 过滤文件/文件夹示例

# 忽略文件示例 # 忽略 `.exe` 结尾的所有文件 *.duplicatidownload *.exe # 忽略根目录示例,以 `/` 开头表示当前备份/同步的根目录 # 忽略当前备份/同步的根目录 `/Recovery/` 下的文件夹和文件 /Recovery/* /Recovery/ /System Volume Information/ /System Volume Information/* /Boot/ /Boot/* /$RECYCLE.BIN/* /$RECYCLE.BIN/ /bootmgr /bootTel.dat /@Recycle/* /@Recently-Snapshot/* /@Recycle/ /@Recently-Snapshot/ # 忽略根目录和子目录示例 # 忽略当前备份/同步的目录下 `/.next/` 目录以及子目录下的所有文件夹和文件 **/@Recycle/* **/@Recently-Snapshot/* **/.@__thumb/* **/@Transcode/* **/.obsidian/* **/.git/* **/.svn/* **/node_modules/* **/bin/Debug/* **/bin/Release/* **/logs/* **/obj/* **/packages/* **/.next/* 路线图 [3.5] 支持 Linux 磁盘挂载。 [3.x] 支持超时自动锁定管理后台。 [3.x] 支持在线上传。 [3.x] 多模块支持,支持 Duplicati、Kopia 模块,直接进行加密。 [3.x] 多版本、快照模式 [3.x] Kopia 模式、插件开发 [3.x] 百度云盘集成、本地模式集成、阿里云 OSS、腾讯云 COS 等 [3.x] 上传增加文件的本地时间 [3.x] WebDAV 支持 [3.x] 多版本、多备份、版本还原 [3.x] 配置加密、作业加密 [3.x] 支持自定义文件后缀。避免被任何文件分析。 [3.x] 支持多个备份点,避免快照数据损坏(待定),支持多重备份点。 [3.x] 还原时恢复原始权限和时间 [3.x] Duplicati 版(自动加密) [3.x] Kopia 版(自动加密) [3.x] 提供 Mac 版、手机版(Andorid 版、IOS 版) [验证] 空文件、空文件夹也同步 [验证] 快捷方式支持同步,注意可能存在兼容性问题 [修复] 指向同一目标 bug -> #3 [优化] 优化挂载读写性能 [优化] 优化磁盘挂载支持秒传 [新增] 增加 linux/unix/mac 磁盘挂载支持 [BUG] 多个源文件夹名称一致校验 [优化] 添加自定义挂载磁盘名称支持 -> #15 GUI 路线图 [3.x] WebUI 版本更新提示,支持热更新支持,使用子程序提供热更新服务。 App 启动时,通过接口获取欢迎语,检查版本等 App 增加下次作业时间 App 增加公告 App 增加上次执行结果 Mac 版本、移动端打包、Windows 安装包、WPF 安装包 锁定模式,超时多少时间自动退出登录 Windows 客户端 UI/WPF 版本 发布

通过 Github Actions 自动或生成到 Docker Hub、ghci.io、Window 安装包等,保证程序的安全。

性能 极致,待完善,仅供参考。 大小 29.7 GB, 1,467 个文件,3,640 个文件夹 首次同步:0.8秒 + 8秒(列表加载用时 9 秒) [11:14:01 INF] Current: E:\***\publish [11:14:01 INF] 作业初始化 [11:14:02 INF] 同步作业开始:12/27/2023 11:14:02 [11:14:02 INF] 云盘存储根目录初始化完成,用时:194ms [11:14:02 INF] 开始加载云盘存储文件列表 [11:14:12 INF] 云盘文件加载完成,包含 1467 个文件,3643 个文件夹。 [11:14:12 INF] 加载云盘存储文件列表完成,用时:9835ms [11:14:12 INF] 开始执行同步 [11:14:13 INF] 扫描本地文件,总文件数:1467, 扫描文件用时: 385.6735ms [11:14:13 INF] 同步文件夹中 4/3641,用时:1.7352ms,kopia/p6c/f66 ... [11:14:13 INF] 同步文件夹中 3639/3641,用时:796.4739ms,kopia/p8a/032 [11:14:13 INF] 同步文件夹完成,总文件夹数:1467,用时:798.2616ms [11:14:13 INF] 同步文件中 1/1467,用时:43.6954ms,kopia/p9e/80a/bd40cee2b0538167b1ac0cfe3f3-s9a17ce26b1838062122.f ... [11:14:30 INF] 同步文件中 1467/1467,用时:17063.5177ms,kopia/p65/ef2/046536ebd68a2b0ec57a3f733ff-s9a17ce26b1838062122.f [11:14:30 INF] 同步文件完成,总文件数:1467,用时:17063.8004ms [11:14:30 INF] 同步作业完成,用时:18250ms [11:14:30 INF] 同步作业结束:12/27/2023 11:14:30 [11:14:31 INF] 同步作业校验完成,用时:2ms 第二次同步:总用时 2 秒(列表加载用时 10 秒) [11:19:01 INF] 开始例行检查 [11:20:00 INF] 同步作业开始:12/27/2023 11:20:00 [11:20:00 INF] 云盘存储根目录初始化完成,用时:367ms ... [11:20:10 INF] 云盘文件加载完成,包含 1467 个文件,3643 个文件夹。 [11:20:10 INF] 加载云盘存储文件列表完成,用时:10047ms [11:20:10 INF] 开始执行同步 [11:20:10 INF] 扫描本地文件,总文件数:1467, 扫描文件用时: 322.6471ms [11:20:10 INF] 同步文件夹中 2/3641,用时:0.0552ms,kopia/p6c/f66 ... [11:20:12 INF] 同步文件夹完成,总文件夹数:1467,用时:1450.7582ms ... [11:20:12 INF] 同步文件中 1467/1467,用时:519.6538ms,kopia/qd1/275/b7e487081d0ed47ea0638caa116-s3e0aeff9c8243770123.f [11:20:12 INF] 同步文件完成,总文件数:1467,用时:520.4528ms [11:20:12 INF] 同步作业完成,用时:2295ms [11:20:12 INF] 同步作业结束:12/27/2023 11:20:12 [11:20:12 INF] 同步作业校验完成,用时:1ms 赞助 推广返现 购买阿里云盘会员返现 感谢所有的贡献者 如果您觉得本项目对您有帮助,欢迎收藏点赞,也可通过扫码购买会员,对作者提供支持!

限时推广返现,APP 扫码购买会员

👍👍阿里云盘推广返现,8T云盘低至6元/月,点击购买会员支持作者,最高30%返现🌸🌸

限时推广返现,最高30%返现

微信返现客服

tab-ai

贡献者

感谢以下所有的贡献者!

友情链接 阿里云盘小白羊网盘 https://github.com/gaozhangmin/aliyunpan 阿里云盘命令行客户端 https://github.com/tickstep/aliyunpan 鸣谢 感谢阿里云盘共创团对 MDrive 的支持。 感谢 Duplicati 对本产品的支持。 WinSW 系统服务,将本程序安装作为 Windows 服务运行。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3