{"id":18613729,"url":"https://github.com/trueai-org/mdrive","last_synced_at":"2025-04-08T04:19:26.598Z","repository":{"id":213669306,"uuid":"734647737","full_name":"trueai-org/mdrive","owner":"trueai-org","description":"一个基于阿里云盘官方 API 授权的自动同步和备份工具，支持云盘挂载到本地，支持本地存储，支持加密，多平台、安全、自动化的数据管理方案。","archived":false,"fork":false,"pushed_at":"2024-06-27T04:33:52.000Z","size":41229,"stargazers_count":176,"open_issues_count":11,"forks_count":29,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T09:07:16.403Z","etag":null,"topics":["aes256-gcm","alist","aliyun-drive","aliyundrive","aliyunpan","backup","blake3","chacha20-poly1305","csharp","disk","duplicati","file-server","lz4","mount","net8","sha256","snappy","sync","webdav","zstd"],"latest_commit_sha":null,"homepage":"https://duplicati.net","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trueai-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-22T08:26:53.000Z","updated_at":"2025-03-24T02:05:17.000Z","dependencies_parsed_at":"2024-01-01T15:23:27.039Z","dependency_job_id":"2dab4dba-eb4c-4db0-9e6b-b294893a7ccd","html_url":"https://github.com/trueai-org/mdrive","commit_stats":null,"previous_names":["trueai-org/mdrivesync","trueai-org/mdrive"],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trueai-org%2Fmdrive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trueai-org%2Fmdrive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trueai-org%2Fmdrive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trueai-org%2Fmdrive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trueai-org","download_url":"https://codeload.github.com/trueai-org/mdrive/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247773726,"owners_count":20993639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes256-gcm","alist","aliyun-drive","aliyundrive","aliyunpan","backup","blake3","chacha20-poly1305","csharp","disk","duplicati","file-server","lz4","mount","net8","sha256","snappy","sync","webdav","zstd"],"created_at":"2024-11-07T03:23:29.526Z","updated_at":"2025-04-08T04:19:26.578Z","avatar_url":"https://github.com/trueai-org.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MDrive\n\n多平台、模块化、可挂载、安全、加密的云盘自动同步、备份工具，支持本地存储、阿里云盘等，支持镜像、备份等同步模式，完全免费开源。\n\n提供 Docker、Windows、Linux、macOS、Web 等多平台版本。\n\n支持 **AES256-GCM、ChaCha20-Poly1305** 加密，支持 **Zstd、LZ4、Snappy** 压缩，支持 **SHA256、BLAKE3** 等哈希算法，**任何第三方、服务商都无法查看数据，保护您的数据安全和隐私**。\n\n## 安装与使用\n\n### 快速启动\n\n\u003e Docker 版本\n\n```bash\n# 阿里云镜像（推荐国内使用）\ndocker pull registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive\ndocker run --name mdrive -d --restart=always \\\n -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \\\n -p 8080:8080 --user root \\\n -e TZ=Asia/Shanghai \\\n -v /etc/localtime:/etc/localtime:ro \\\n -v /etc/timezone:/etc/timezone:ro \\\n registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive\n\n# Docker Hub 镜像\ndocker pull trueaiorg/mdrive\ndocker run --name mdrive -d --restart=always \\\n -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \\\n -p 8080:8080 --user root \\\n -e TZ=Asia/Shanghai \\\n -v /etc/localtime:/etc/localtime:ro \\\n -v /etc/timezone:/etc/timezone:ro \\\n trueaiorg/mdrive\n\n# GitHub 镜像\ndocker pull ghcr.io/trueai-org/mdrive\ndocker run --name mdrive -d --restart=always \\\n -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \\\n -p 8080:8080 --user root \\\n -e TZ=Asia/Shanghai \\\n -v /etc/localtime:/etc/localtime:ro \\\n -v /etc/timezone:/etc/timezone:ro \\\n ghcr.io/trueai-org/mdrive\n\n# 演示站点启动配置\ndocker pull registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive\ndocker run --name mdrive -d --restart=always \\\n -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \\\n -e DEMO=true \\\n -p 8080:8080 --user root \\\n -v /root/mdrive/data:/app/data:rw \\\n -e TZ=Asia/Shanghai \\\n -v /etc/localtime:/etc/localtime:ro \\\n -v /etc/timezone:/etc/timezone:ro \\\n registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive\n```\n\n\u003e Windows 版本\n\n```bash\na. 通过 https://github.com/trueai-org/mdrive/releases 下载 windows 最新免安装版，例如：MDrvie-win-x64.zip\nb. 解压并执行 MDriveSync.Client.API.exe\nc. 打开网站 http://localhost:8080/\nd. 安装为系统服务（可选），右键文件以管理员身份运行 `一键安装或卸载*.bat`，选择安装或卸载服务。\ne. 部署到 IIS（可选），在 IIS 添加网站，将文件夹部署到 IIS，配置应用程序池为`无托管代码`，启动网站。\nf. 使用系统自带的 `任务计划程序`（可选），创建基本任务，选择 `.exe` 程序即可，请选择`请勿启动多个实例`，保证只有一个任务执行即可。\ng. 磁盘挂载支持（可选），下载并安装驱动（http://localhost:8080/driver/Dokan_x64.msi），将云盘挂载到本地，像管理本地文件一样管理远程文件。\n```\n\n\u003e Linux 版本\n\n```bash\na. 通过 https://github.com/trueai-org/mdrive/releases 下载 linux 最新免安装版，例如：MDrive-linux-x64.zip\nb. 解压到当前目录: tar -xzf MDrive-linux-x64-\u003cVERSION\u003e.tar.gz\nc. 执行: run_app.sh\nc. 启动方式1: sh run_app.sh\nd. 启动方式2: chmod +x run_app.sh \u0026\u0026 ./run_app.sh\n```\n\u003e macOS 版本\n\n```bash\na. 通过 https://github.com/trueai-org/mdrive/releases 下载 macOS 最新免安装版，例如：MDrive-osx-x64.zip\nb. 解压到当前目录: tar -xzf MDrive-osx-x64-\u003cVERSION\u003e.tar.gz\nc. 执行: run_app_osx.sh\nc. 启动方式1: sh run_app_osx.sh\nd. 启动方式2: chmod +x run_app_osx.sh \u0026\u0026 ./run_app_osx.sh\n```\n\n### 在线预览\n\n\u003e 账号：admin，密码：123456\n\n\u003chttp://8.138.19.239:8080\u003e\n\n![作业](/docs/screenshots/job.gif)\n![挂载](/docs/screenshots/mount.png)\n![macOS](/docs/screenshots/macOS.png)\n\n### 压缩与加密\n\n- [对称加密方法](https://soatok.blog/2020/07/12/comparison-of-symmetric-encryption-methods/) https://soatok.blog/2020/07/12/comparison-of-symmetric-encryption-methods/\n- [AEAD 加密](https://libsodium.gitbook.io/doc/secret-key_cryptography/aead) https://libsodium.gitbook.io/doc/secret-key_cryptography/aead\n- [压缩分析](https://kopia.io/docs/advanced/compression/) https://kopia.io/docs/advanced/compression/\n- [压缩算法](https://tech.meituan.com/2021/01/07/pack-gzip-zstd-lz4.html) https://tech.meituan.com/2021/01/07/pack-gzip-zstd-lz4.html\n- [LZ4 - lz4.org](https://github.com/lz4/lz4) https://github.com/lz4/lz4\n- [Facebook zstd](https://github.com/facebook/zstd) https://github.com/facebook/zstd\n- [Google snappy](https://github.com/google/snappy) https://github.com/google/snappy\n \n![文件加密模式](/docs/screenshots/file-encrypt.png)\n\n![文件打包加密模式](/docs/screenshots/package-encrypt.png)\n\n### Docker 部署\n\n近期 Docker Hub 国内无法使用，可以使用 https://docker.m.daocloud.io 加速，或使用阿里云镜像。\n\nhttps://hub.docker.com/r/trueaiorg/mdrive\n\n**从阿里云 Registry 中拉取镜像**\n\n\u003e docker pull registry.cn-guangzhou.aliyuncs.com/trueai-org/mdrive:[镜像版本号]\n\n**从 Docker Hub 中拉取镜像**\n\n\u003e docker pull trueaiorg/mdrive:[镜像版本号]\n\n**从 GitHub Registry 中拉取镜像**\n\n\u003e docker pull ghcr.io/trueai-org/mdrive:[镜像版本号]\n\n\n```\n# 拉取镜像\ndocker pull trueaiorg/mdrive\n\n# 快速启动并开启只读模式\ndocker run --name mdrive -d --restart=always \\\n -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \\\n -e READ_ONLY=true \\\n -p 8080:8080 trueaiorg/mdrive\n\n# 快速启动完整示例2，持久化、映射配置、只读、账号密码\n# 如果需要，更改目录权限\nsudo chmod -R 777 /home/mdrive/db\ndocker run --name mdrive -d --restart=always \\\n -v /home/mdrive/appsettings.json:/app/appsettings.json:rw \\\n -v /home/mdrive/db:/app/db:rw \\\n -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \\\n -e READ_ONLY=true \\\n -p 18080:8080 --user root trueaiorg/mdrive\n\n# 确保目录存在\n# 确保映射/挂载了备份目录\n# 创建云盘存储目录\nmkdir /home/mdrive\ncd /home/mdirve\n\n# 创建配置文件（可选）\nvi appsettings.json\n\n# 确保配置具有可写配置权限 appsettings.json\nchmod 666 appsettings.json\n\n# 快速启动示例，并挂载 /data 目录到容器 /data 只读模式，并映射端口 8080\ndocker run --name mdrive -d --restart=always \\\n -v /home/mdrive/appsettings.json:/app/appsettings.json:rw \\\n -v /data:/data:ro \\\n -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \\\n -p 8080:8080 --user root trueaiorg/mdrive\n\n# 调试日志\ndocker logs mdrive\n\n# 进入容器\ndocker exec -it mdrive /bin/bash\n\n# 访问端口\nhttp://{ip}:8080\n\n# 更多示例\n# 配置日志、映射云盘配置、映射程序配置、挂载 /data\nmkdir /home/mdrive/logs\ndocker run --name mdrive -d --restart=always \\\n -v /home/mdrive/appsettings.json:/app/appsettings.json:rw \\\n -v /home/mdrive/logs:/app/logs \\\n -v /home/mdrive/db:/app/db \\\n -v /data:/data:ro \\\n -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456 \\\n -p 8080:8080 --user root trueaiorg/mdrive\n\n# 更多权限，容器内以 root 用户启动：--user root\n\n```\n\n### Windows 服务部署\n\n下载 `MDrive` 并解压，运行 `.exe` 程序即可。\n\n- 作为服务后台执行：\n  - 可使用系统自带的 `任务计划程序`，创建基本任务，选择 `.exe` 程序即可，请选择`请勿启动多个实例`，保证只有一个任务执行即可。\n  - 可使用其他服务后台启动，例如：nssm、sc、winsw、iis 等。\n\n## 特性\n\n- [√] 不限速，阿里云盘官方接口支持，上传下载均不限速。\n- [√] 挂载云盘支持，支持将云盘挂载到本地，作为本地硬盘使用。\n- [√] 多线程支持，多线程上传、下载、同步，充分利用带宽。\n- [√] 定时作业，定时同步、还原、备份等。\n- [√] 在线云盘文件管理。\n- [√] 免费、开源\n- [√] 跨平台，支持 Windows、Linux、Unix、Mac、Android、Docker 等平台。\n- [√] 快速校验，多种算法支持 sha1、sha256、md5、blake3 等。\n- [√] 安全，加密\n- [√] 多账号支持，多阿里云盘账号支持\n- [√] 多作业计划支持，可以配置多个同步时间点。\n- [√] 多种同步方式：镜像、备份\n- [√] 极速，采用安全极速的差异算法，极速实现同步。\n- [√] 支持秒传\n- [√] 支持过滤本地文件/文件夹，丰富的校验规则。\n- [√] 高性能，采用 .NET8 最新技术，极致的性能体现，低内存、高性能、跨平台。\n- [√] WebUI 可视化配置\n- [√] WebUI 前后端分离，保证了后台服务的高可用。\n- [√] 支持只读模式，只读模式启动服务，则不可以编辑配置。\n- [√] 支持自定义端口。\n- [√] 支持回收站功能，支持删除文件/夹到回收站。\n- [√] WebUI 支持多主题，支持黑色模式。\n- [√] 支持云盘管理和在线下载文件。\n- [√] 支持作业暂停、恢复、禁用、取消、删除等。\n- [√] 支持队列，保证作业的高可用，避免多任务卡顿以及抢占资源问题。\n- [√] 支持登录验证，下载验证。\n- [√] 支持从配置文件中启动作业。\n- [√] 支持将云盘挂载到本地，像管理本地文件一样管理远程文件。\n- [√] 支持将备份目录挂载到本地。\n- [√] 支持快照，支持快照挂载。\n- [√] 支持导入/导出配置。\n- [√] 支持还原/下载云盘文件。\n\n## 启动配置\n\n- 只读模式：WebUI 下如果开启只读模式，则允许编辑和修改，只能查看，默认 `ReadOnly: false`。使用方式，可以通过修改 `appsettings.json` 或 docker 使用环境变量 `-e READ_ONLY=true`。\n- 基础认证：WebUI 账号和密码，如果开启则打开网站管理后台时需要输入账号和密码，默认启用 `BasicAuth`。使用方式，可以通过修改 `appsettings.json` 或 docker 使用环境变量 ` -e BASIC_AUTH_USER=admin -e BASIC_AUTH_PASSWORD=123456`。\n- 演示模式：网站配置为演示模式，只能查看和下载，功能受限，默认 `Demo: null`。使用方式，可以通过修改 `appsettings.json` 或 docker 使用环境变量 `-e DEMO=true`。\n- 调试模式：非正式版（alpha、beta、rc）默认输出调试错误代码行号，正式版不包含 `.pdb` 文件。\n\n## 系统配置\n\n\u003e 默认 `appsettings.json` 与 `appsettings.Example.json` 示例配置。\n\n\u003e 如果您通过 `Docker` 启动或简单使用则无需关心此配置。\n\n```json\n# appsettings.Example.json 示例配置\n{\n  // 网站配置为只读模式\n  \"ReadOnly\": null,\n\n  // 网站配置为演示模式\n  \"Demo\": null,\n\n  // 网站登录授权账号密码\n  \"BasicAuth\": {\n    \"User\": \"\",\n    \"Password\": \"\"\n  },\n  \"Client\": {\n    // 阿里云盘默认启动时加载的配置项（可选）\n    \"AliyunDrives\": [\n      {\n        \"Id\": \"1\",\n        \"Name\": \"云盘1\",\n        \"TokenType\": \"Bearer\",\n        \"AccessToken\": \"\",\n        \"RefreshToken\": \"【1】这里输入授权令牌\",\n        \"ExpiresIn\": 7200,\n        \"Jobs\": [\n          {\n            \"Id\": \"1\",\n            \"Name\": \"test\",\n            \"Description\": \"\",\n            \"State\": 0,\n            \"Schedules\": [\n              \"【2】这里是备份计划时间，例如每分钟执行：0 * * * * ?\"\n            ],\n            \"Filters\": [\n              \"/Recovery/\",\n              \"/System Volume Information/\",\n              \"/Boot/\",\n              \"/$RECYCLE.BIN/\",\n              \"/@Recycle/\",\n              \"/@Recently-Snapshot/\",\n              \"**/node_modules/**\",\n              \"*.duplicatidownload\"\n            ],\n            \"Sources\": [\n              \"【3】这里输入备份的文件夹，可填写多个路径，注意：windows 路径，例如：E:\\\\test\"\n            ],\n            \"Target\": \"【4】这里输入云盘备份目录，例如：backups/test\",\n            \"Restore\": \"E:\\\\kopia_restore\",\n            \"RapidUpload\": true,\n            \"DefaultDrive\": \"backup\",\n            \"CheckAlgorithm\": \"sha256\",\n            \"CheckLevel\": 1,\n            \"FileWatcher\": true,\n            \"Order\": 0,\n            \"IsTemporary\": false,\n            \"IsRecycleBin\": false,\n            \"UploadThread\": 0,\n            \"DownloadThread\": 0\n          }\n        ]\n      }\n    ]\n  },\n  // 日志输出\n  \"Serilog\": {\n    \"MinimumLevel\": {\n      \"Default\": \"Information\",\n      \"Override\": {\n        \"Default\": \"Warning\",\n        \"System\": \"Warning\",\n        \"Microsoft\": \"Warning\"\n      }\n    },\n    \"WriteTo\": [\n      // 是否将日志输出到文件\n      {\n        \"Name\": \"File\",\n        \"Args\": {\n          \"path\": \"logs/log.txt\",\n          \"rollingInterval\": \"Day\",\n          \"fileSizeLimitBytes\": null,\n          \"rollOnFileSizeLimit\": false,\n          \"retainedFileCountLimit\": 31\n        }\n      },\n      // 是否将日志输出到控制台\n      {\n        \"Name\": \"Console\"\n      }\n    ]\n  },\n  // 系统日志配置\n  \"Logging\": {\n    \"LogLevel\": {\n      \"Default\": \"Information\",\n      \"Microsoft.AspNetCore\": \"Warning\"\n    }\n  },\n  \"AllowedHosts\": \"*\",\n  \"urls\": \"http://*:8080\" // 默认程序启动的端口\n}\n```\n\n\u003e 注意系统日志路径配置，不同操作系统之间的差异。\n\n```json\n# window\n\"path\": \"logs\\\\log.txt\"\n\n# linux\n\"path\": \"logs/log.txt\"\n```\n\n\u003e 默认 `Client` 配置（可选，默认无需配置）\n\n- `RefreshToken` 为必填项，其他不用填写。[点击获取授权](https://openapi.alipan.com/oauth/authorize?client_id=12561ebaf6504bea8a611932684c86f6\u0026redirect_uri=https://api.duplicati.net/api/open/aliyundrive\u0026scope=user:base,file:all:read,file:all:write\u0026relogin=true)令牌，或登录官网获取授权令牌。\n- `Jobs` 可以配置多个作业，计划中的作业时间可以可以配置多个时间点。\n  - `Sources` 备份源目录列表，可以配置多个备份源，必填\n  - `Target` 云盘存储目录，必填\n  - `Schedules` 定时计划，可配置多个计划时间\n  - `IsTemporary` 是否为临时任务或一次性的同步任务，也表示是否立即执行，如果为 `true`，则启动时立即执行作业\n  - `State` 作业状态，例如：100 表示暂停，0 表示未开始\n  - `Mode` 同步模式，0 镜像同步（以本地为主，远程为镜像，删除不一致冗余的远程文件），1 冗余同步（同步到远程，不删除远程文件）\n\n```json\n{\n  \"Client\": { // 客户端备份/同步配置\n    \"AliyunDrives\": [ // 阿里云盘配置\n      {\n        \"Name\": \"云盘1\", // 云盘名称\n        \"TokenType\": \"Bearer\", // 令牌类型，这里是Bearer类型\n        \"AccessToken\": \"your_access_token\", // 访问令牌，用于API访问\n        \"RefreshToken\": \"your_refresh_token\", // 【必填】刷新令牌，用于获取新的访问令牌\n        \"ExpiresIn\": 7200, // 令牌过期时间，单位为秒\n        \"Metadata\": \"\", // 阿里云盘元信息，如用户信息、云盘信息、VIP信息等\n        \"Jobs\": [ // 作业列表\n          {\n            \"Id\": \"1\", // 任务 ID\n            \"Name\": \"gpkopia\", // 任务/作业名称\n            \"Description\": \"\", // 作业描述\n            \"State\": 0, // 作业状态，例如：100 表示暂停，0 表示未开始\n            \"Mode\": 0, // 同步模式，0 镜像同步，1 冗余同步\n            \"Schedules\": [ // 【必填】定时计划，使用cron表达式定义\n              \"0 0/10 * * * ?\"\n            ],\n            \"Filters\": [ // 文件过滤列表\n              \"**/logs/*\"\n            ], \n            \"Sources\": [ // 【必填】源目录列表\n              \"E:\\\\kopia\"\n            ],\n            \"Target\": \"backups/gp\", // 【必填】目标存储目录\n            \"Restore\": \"E:\\\\kopia_restore\", // 还原目录\n            \"RapidUpload\": true, // 是否启用秒传功能\n            \"DefaultDrive\": \"backup\", // 默认备份的云盘类型，备份盘或资源盘\n            \"CheckAlgorithm\": \"sha256\", // 文件对比检查算法\n            \"CheckLevel\": 1, // 文件差异算法检查级别\n            \"FileWatcher\": true, // 是否启用文件系统监听\n            \"Order\": 0, // 任务显示顺序\n            \"IsTemporary\": false, // 是否为临时任务，是否立即执行\n            \"IsRecycleBin\": false, // 是否启用删除到回收站\n            \"UploadThread\": 0, // 上传并行任务数\n            \"DownloadThread\": 0, // 下载并行任务数\n            \"Metadata\": \"\" // 作业元信息\n          },\n          // 更多作业配置...\n        ]\n      }\n    ]\n  }\n}\n\n```\n\n```json\n# 管理后台账号密码\n# 可以通过配置，直接修改管理后台账号密码。在 docker 启动时，也可以通过环境变量设置。\n{\n  \"BasicAuth\": {\n    \"User\": \"admin\",\n    \"Password\": \"123456\"\n  }\n}\n```\n\n\u003e `Schedules` 作业计划任务示例\n\n```csharp\n// cron 表达式 基于 Quartz 3.8.0\n// https://www.bejson.com/othertools/cron/\n\n// 每 5 秒\n0/5 * * * * ?\n\n// 每分钟\n0 * * * * ?\n\n// 每 5 分钟\n0 0/5 * * * ?\n\n// 每 10 分钟\n0 0/10 * * * ?\n\n// 每天 9 点\n0 0 9 * * ?\n\n// 每天 8 点 10 分\n0 10 8 * * ?\n```\n\n\u003e `Filters` 过滤文件/文件夹示例\n\n```bash\n# 忽略文件示例\n# 忽略 `.exe` 结尾的所有文件\n*.duplicatidownload\n*.exe                       \n\n# 忽略根目录示例，以 `/` 开头表示当前备份/同步的根目录\n# 忽略当前备份/同步的根目录 `/Recovery/` 下的文件夹和文件\n/Recovery/*                 \n/Recovery/\n/System Volume Information/\n/System Volume Information/*\n/Boot/\n/Boot/*\n/$RECYCLE.BIN/*\n/$RECYCLE.BIN/\n/bootmgr\n/bootTel.dat\n/@Recycle/*\n/@Recently-Snapshot/*\n/@Recycle/\n/@Recently-Snapshot/\n\n# 忽略根目录和子目录示例\n# 忽略当前备份/同步的目录下 `/.next/` 目录以及子目录下的所有文件夹和文件\n**/@Recycle/*\n**/@Recently-Snapshot/*\n**/.@__thumb/*\n**/@Transcode/*\n**/.obsidian/*\n**/.git/*\n**/.svn/*\n**/node_modules/*\n**/bin/Debug/*\n**/bin/Release/*\n**/logs/*\n**/obj/*\n**/packages/*\n**/.next/*              \n```\n\n\n## 路线图\n\n- [3.5] 支持 Linux 磁盘挂载。\n- [3.x] 支持超时自动锁定管理后台。\n- [3.x] 支持在线上传。\n- [3.x] 多模块支持，支持 Duplicati、Kopia 模块，直接进行加密。\n- [3.x] 多版本、快照模式\n- [3.x] Kopia 模式、插件开发\n- [3.x] 百度云盘集成、本地模式集成、阿里云 OSS、腾讯云 COS 等\n- [3.x] 上传增加文件的本地时间\n- [3.x] WebDAV 支持\n- [3.x] 多版本、多备份、版本还原\n- [3.x] 配置加密、作业加密\n- [3.x] 支持自定义文件后缀。避免被任何文件分析。\n- [3.x] 支持多个备份点，避免快照数据损坏（待定），支持多重备份点。\n- [3.x] 还原时恢复原始权限和时间\n- [3.x] Duplicati 版（自动加密）\n- [3.x] Kopia 版（自动加密）\n- [3.x] 提供 Mac 版、手机版（Andorid 版、IOS 版）\n- ~~[验证] 空文件、空文件夹也同步~~\n- ~~[验证] 快捷方式支持同步，注意可能存在兼容性问题~~\n- [修复] 指向同一目标 bug -\u003e https://github.com/trueai-org/MDriveSync/issues/3\n- [优化] 优化挂载读写性能\n- [优化] 优化磁盘挂载支持秒传\n- [新增] 增加 linux/unix/mac 磁盘挂载支持\n- [BUG] 多个源文件夹名称一致校验\n- [优化] 添加自定义挂载磁盘名称支持 -\u003e https://github.com/trueai-org/mdrive/issues/15\n\n## GUI 路线图\n\n- [3.x] WebUI 版本更新提示，支持热更新支持，使用子程序提供热更新服务。\n- App 启动时，通过接口获取欢迎语，检查版本等\n- App 增加下次作业时间\n- App 增加公告\n- App 增加上次执行结果\n- Mac 版本、移动端打包、Windows 安装包、WPF 安装包\n- 锁定模式，超时多少时间自动退出登录\n- Windows 客户端 UI/WPF 版本\n\n## 发布\n\n通过 `Github Actions` 自动或生成到 `Docker Hub`、`ghci.io`、`Window` 安装包等，保证程序的安全。\n\n## 性能\n\n- 极致，待完善，仅供参考。\n\n```txt\n大小 29.7 GB, 1,467 个文件，3,640 个文件夹\n首次同步：0.8秒 + 8秒（列表加载用时 9 秒）\n\n[11:14:01 INF] Current: E:\\***\\publish\n[11:14:01 INF] 作业初始化\n[11:14:02 INF] 同步作业开始：12/27/2023 11:14:02\n[11:14:02 INF] 云盘存储根目录初始化完成，用时：194ms\n[11:14:02 INF] 开始加载云盘存储文件列表\n[11:14:12 INF] 云盘文件加载完成，包含 1467 个文件，3643 个文件夹。\n[11:14:12 INF] 加载云盘存储文件列表完成，用时：9835ms\n[11:14:12 INF] 开始执行同步\n[11:14:13 INF] 扫描本地文件，总文件数：1467, 扫描文件用时: 385.6735ms\n[11:14:13 INF] 同步文件夹中 4/3641，用时：1.7352ms，kopia/p6c/f66\n...\n[11:14:13 INF] 同步文件夹中 3639/3641，用时：796.4739ms，kopia/p8a/032\n[11:14:13 INF] 同步文件夹完成，总文件夹数：1467，用时：798.2616ms\n[11:14:13 INF] 同步文件中 1/1467，用时：43.6954ms，kopia/p9e/80a/bd40cee2b0538167b1ac0cfe3f3-s9a17ce26b1838062122.f\n...\n[11:14:30 INF] 同步文件中 1467/1467，用时：17063.5177ms，kopia/p65/ef2/046536ebd68a2b0ec57a3f733ff-s9a17ce26b1838062122.f\n[11:14:30 INF] 同步文件完成，总文件数：1467，用时：17063.8004ms\n[11:14:30 INF] 同步作业完成，用时：18250ms\n[11:14:30 INF] 同步作业结束：12/27/2023 11:14:30\n[11:14:31 INF] 同步作业校验完成，用时：2ms\n\n第二次同步：总用时 2 秒（列表加载用时 10 秒）\n\n[11:19:01 INF] 开始例行检查\n[11:20:00 INF] 同步作业开始：12/27/2023 11:20:00\n[11:20:00 INF] 云盘存储根目录初始化完成，用时：367ms\n...\n[11:20:10 INF] 云盘文件加载完成，包含 1467 个文件，3643 个文件夹。\n[11:20:10 INF] 加载云盘存储文件列表完成，用时：10047ms\n[11:20:10 INF] 开始执行同步\n[11:20:10 INF] 扫描本地文件，总文件数：1467, 扫描文件用时: 322.6471ms\n[11:20:10 INF] 同步文件夹中 2/3641，用时：0.0552ms，kopia/p6c/f66\n...\n[11:20:12 INF] 同步文件夹完成，总文件夹数：1467，用时：1450.7582ms\n...\n[11:20:12 INF] 同步文件中 1467/1467，用时：519.6538ms，kopia/qd1/275/b7e487081d0ed47ea0638caa116-s3e0aeff9c8243770123.f\n[11:20:12 INF] 同步文件完成，总文件数：1467，用时：520.4528ms\n[11:20:12 INF] 同步作业完成，用时：2295ms\n[11:20:12 INF] 同步作业结束：12/27/2023 11:20:12\n[11:20:12 INF] 同步作业校验完成，用时：1ms\n```\n\n## 赞助\n\n- 推广返现\n- 购买阿里云盘会员返现\n- 感谢所有的贡献者\n- 如果您觉得本项目对您有帮助，欢迎收藏点赞，也可通过扫码购买会员，对作者提供支持！\n\n\u003e 限时推广返现，APP 扫码购买会员\n\n[👍👍阿里云盘推广返现，8T云盘低至6元/月，点击购买会员支持作者，最高30%返现🌸🌸](https://www.alipan.com/cpx/member?userCode=MzAwMzE5)\n\n![限时推广返现，最高30%返现](/docs/screenshots/aliyun.png)\n\n\u003e 微信返现客服\n\n`tab-ai`\n\n## 贡献者\n\n感谢以下所有的贡献者！\n\n\u003ca href=\"https://github.com/616734202\"\u003e\n    \u003cimg src=\"https://github.com/616734202.png\" width=\"68\" height=\"68\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/tdsszz\"\u003e\n    \u003cimg src=\"https://github.com/tdsszz.png\" width=\"68\" height=\"68\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/Fingerbb\"\u003e\n    \u003cimg src=\"https://github.com/Fingerbb.png\" width=\"68\" height=\"68\" /\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://github.com/trueai-org/MDriveSync/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/MDriveSync/contributors.svg?width=890\" /\u003e\u003c/a\u003e\n\n## 友情链接\n\n- [阿里云盘小白羊网盘](https://github.com/gaozhangmin/aliyunpan) https://github.com/gaozhangmin/aliyunpan\n- [阿里云盘命令行客户端](https://github.com/tickstep/aliyunpan) https://github.com/tickstep/aliyunpan\n\n## 鸣谢\n\n- 感谢阿里云盘共创团对 MDrive 的支持。\n- 感谢 Duplicati 对本产品的支持。\n- [WinSW](https://github.com/winsw/winsw) 系统服务，将本程序安装作为 Windows 服务运行。 \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrueai-org%2Fmdrive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrueai-org%2Fmdrive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrueai-org%2Fmdrive/lists"}