介绍
官方网站:https://kopia.io/
Kopia是一个免费、开源、跨平台、支持加密的文件备份工具,旨在为个人用户和企业用户提供高效、安全、易用的本地或云存储备份解决方案。
它通过去中心化的方式管理备份数据,具有强大的压缩与去重功能,并支持多种存储后端(如本地磁盘、Google Drive、S3、Azure Blob Storage 等)。
软件截图
软件特点
🔒 加密备份
- 所有数据在客户端加密后再上传,确保隐私安全。
- 支持 AES256 加密算法,使用用户控制的密码保护数据。
💾 多种存储后端支持
- 本地文件系统
- Google Drive / OneDrive / Dropbox
- Amazon S3 / Azure Blob Storage / Backblaze B2
- SFTP / FTP / WebDAV / Rclone
- 可自定义扩展新的存储类型
🧠 增量备份 & 去重
- 支持高效的增量备份,只备份更改的部分。
- 使用内容感知的数据块去重技术,极大节省存储空间。
📦 快照管理
- 每次备份生成一个“快照”,便于版本管理和恢复。
- 支持时间线浏览、搜索、恢复任意历史版本。
🖥️ 跨平台支持
- 支持 Windows、macOS、Linux。
- 提供图形界面(GUI) 和命令行(CLI)两种操作方式。
📁 文件系统支持广泛
- 支持 NTFS、HFS+、ext4 等主流文件系统。
- 支持大文件、符号链接、权限保留等高级特性。
🧩 插件与脚本支持
- 支持 pre/post-backup 脚本,可定制备份流程。
- 提供 REST API 和 gRPC 接口用于集成开发。
更新日志
v0.21.0
Command-Line Interface
New Feature human-readable sizes for kopia ls (#4696) by Kian Kasad
New Feature add --disable-file-logging to suppress log file output (#4686) by Leonardo Cecchi
fix path printed by "kopia snapshot fix" commands (#4638) by Kian Kasad
General Improvements
cleanup clock bounds check (#4720) by Julio Lopez
New Feature check for clock skew on write session creation (#4719) by Julio Lopez
rename variable to humanReadable for consistency (#4709) by Julio Lopez
use require to cleanup snapshot tests (#4708) by Julio Lopez
add {peta,exa}byte prefixes (#4707) by Julio Lopez
use snapshot end time as tie breaker for equal start time (#4705) by Julio Lopez
minor cleanups (#4704) by Julio Lopez
migrate remnant piece to crypto/hkdf (#4691) by Julio Lopez
migrate to crypto/{hkdf,pbkdf2,sha3} (#4678) by Julio Lopez
small misc. cleanups (#4666) by Julio Lopez
typos (#4659) by Nathan Baulch
misc cleanups (#4652) by Julio Lopez
enable forcetypeassert linter (#4624) by Julio Lopez
minor cleanups (#4621) by Julio Lopez
upload tests (#4619) by Julio Lopez
misc cleanups (#4615) by Julio Lopez
minor cleanups in snapshot GC (#4612) by Julio Lopez
convenience make targets to install tools (#4616) by Julio Lopez
s/interface{}/any/ (#4614) by Julio Lopez
fix TestSnapshotNoLeftoverCheckpoints slowness (#4611) by Julio Lopez
Repository
create minimal cache.Storage interface (#4618) by Jarek Kowalski
Server
fix snapshot scheduling in the event of machine goes to sleep (#4682) by Jarek Kowalski
Snapshots
New Feature Add periodic JSON progress output to snapshot verify (#4645) by Nick
completely ignore unsupported entries instead of reporting them as ignored errors to avoid snapshot warnings (#4613) by Jarek Kowalski
Storage Providers
Azure client cert env var (#4726) by Julio Lopez
rename Options.ClientCertificate for clarity (#4724) by Julio Lopez
add omitempty JSON tags in azure.Options (#4721) by Julio Lopez
add tags in azure.Options (#4716) by Julio Lopez
CI/CD
upgrade to Go 1.24 (#4675) by Julio Lopez
pin actions (#4657) by Julio Lopez
upgrade Go toolchain to 1.23.10 (#4656) by Julio Lopez
include date-time in temp dir name used for tests (#4651) by Julio Lopez
Graphical User Interface
extracted formatting utilities to separate module (#370) by Jarek Kowalski
moved policy utils to a separate module (#367) by Jarek Kowalski
component refactoring (#365) by Jarek Kowalski
fixed warnings during 'npm test' (#345) by Jarek Kowalski
reorganized test utilities (#369) by Jarek Kowalski
speed up tests that use polling with long intervals (#368) by Jarek Kowalski
refactored router mock setup (#366) by Jarek Kowalski
move cancelTask to a separate module (#364) by Jarek Kowalski
added test for top-level index.jsx (#363) by Jarek Kowalski
added tests for the App component (#362) by Jarek Kowalski
added tests for Policies page (#361) by Jarek Kowalski
added tests for DirectoryItems (#360) by Jarek Kowalski
added tests for DirectoryBreadcrums (#359) by Jarek Kowalski
added tests for SnapshotCreate component (#358) by Jarek Kowalski
added tests for SnapshotDirectory component (#357) by Jarek Kowalski
added forms test (#351) by Jarek Kowalski
more test coverage (#350) by Jarek Kowalski
added tests for the Logs component (#349) by Jarek Kowalski
add tests for Snapshots tab (#348) by Jarek Kowalski
added tests for the Repository tab (#347) by Jarek Kowalski
added tests for Tasks (#346) by Jarek Kowalski
added tests for TimesOfDayTest component (#344) by Jarek Kowalski
added tests for snapshot estimation (#343) by Jarek Kowalski
increased coverage for NotificationEditor.jsx (#342) by Jarek Kowalski
added tests for remaining repository setup pages (#341) by Jarek Kowalski
increase code coverage (#340) by Jarek Kowalski
moved tests to tests/ directory and reorganized by their target (#339) by Jarek Kowalski