DriveSync: Công cụ đồng bộ Google Drive kiểu Git, tốc độ cao viết bằng Rust
DriveSync (dsync) là công cụ dòng lệnh mã nguồn mở viết bằng Rust, giúp đồng bộ thư mục local với Google Drive theo phong cách Git. Công cụ này nổi bật với tốc độ xử lý nhanh, khả năng an toàn cao khi không xóa dữ liệu, không ghi đè xung đột trừ khi được yêu cầu, và hỗ trợ cài đặt qua Homebrew trên macOS và Linux.

DriveSync: Đồng bộ Google Drive nhanh như Git, viết bằng Rust
DriveSync (viết tắt là dsync) là công cụ dòng lệnh mã nguồn mở, nhỏ gọn nhưng mạnh mẽ, giúp đồng bộ hai chiều giữa thư mục local và Google Drive. Được viết bằng Rust và mô phỏng theo ý tưởng của dự án odeke-em/drive, DriveSync mang đến trải nghiệm đồng bộ quen thuộc cho người dùng Git: push thay đổi lên, pull thay đổi xuống, hoặc chỉ xem sự khác biệt với lệnh diff.
Điểm nổi bật
- Tốc độ cao và hiệu quả: So sánh tệp bằng kích thước và MD5 (tính phía Google Drive), kết hợp bộ nhớ đệm thông minh giúp giảm tối đa thời gian xử lý lặp lại.
- An toàn tuyệt đối: Không bao giờ xóa dữ liệu ở bất kỳ phía nào. Không ghi đè xung đột trừ khi có
--force. Mọi thao tác ghi đều được kiểm tra lại ngay trước khi thực hiện để tránh ghi dữ liệu cũ. - Hỗ trợ đa nền tảng: Có sẵn bản cài qua Homebrew (macOS, Linux) và file nhị phân cho Linux/macOS (x86_64, arm64). Windows chưa được hỗ trợ.
Cài đặt nhanh
Cách đơn giản nhất trên macOS và Linux là dùng Homebrew:
brew install scaleninja/tap/drivesync
Nếu Homebrew báo lỗi "untrusted tap", hãy chạy lệnh brew trust scaleninja/tap trước.
Với người dùng muốn dùng file nhị phân, tải từ trang releases hoặc build từ mã nguồn bằng Rust toolchain.
Sử dụng cơ bản
Trước tiên, khởi tạo thư mục đồng bộ với tài khoản Google của bạn:
dsync init ~/gdrive --remote-folder backups/lab --credentials ~/Downloads/client_secret.json
cd ~/gdrive
Sau đó, bạn có thể dùng các lệnh:
dsync diff # Xem sự khác biệt giữa local và Drive
dsync push # Tải lên các thay đổi local (hiện kế hoạch, xác nhận trước)
dsync pull # Tải xuống các thay đổi từ Drive
Kết quả từ lệnh push hoặc pull sẽ hiển thị chi tiết từng thay đổi:
+ photos/2026/
+ photos/2026/a.jpg 1,234,567 B
M docs/report.txt 12,340 B, local newer
! docs/Budget skipped: remote is a Google-native document; not overwritten
C notes.txt conflict: remote is newer
Proceed with the changes? [Y/n]:
Nguyên tắc hoạt động
DriveSync so sánh từng cặp tệp theo nhiều bước, từ rẻ đến đắt:
- Kích thước khác nhau → khác nhau, không cần đọc nội dung.
- MD5 khác nhau → kiểm tra mtime (thời gian sửa) để xác định phía nào mới hơn.
- MD5 bằng nhau → coi như giống hệt nhau.
Điểm đặc biệt là Drive tính MD5 từ phía server khi liệt kê tệp, nên không cần tải toàn bộ nội dung để so sánh. Thư mục từ xa được lập chỉ mục đầy đủ một lần và giữ cập nhật qua Drive Changes API, giúp các lần chạy sau không cần liệt kê lại toàn bộ Drive.
An toàn là trên hết
DriveSync được thiết kế với triết lý không bao giờ gây hại:
- Không xóa bất cứ thứ gì ở cả hai phía.
- Không ghi đè xung đột hoặc va chạm tên (case, Unicode normalization) trừ khi bạn ép buộc.
- Kiểm tra lại dữ liệu ngay trước khi ghi để tránh ghi đè dữ liệu đã thay đổi bởi tiến trình khác.
- Không bao giờ ghi qua symlink hoặc vào thư mục ẩn
.gd/. - Không đụng đến Google Docs, Sheets, Slides (vì chúng không có nội dung nhị phân).
- Hỗ trợ tải lên tiếp tục (resumable upload) cho các tệp lớn, kể cả khi bị gián đoạn.
Hạn chế cần biết
- Không có merge ba chiều: Nếu hai máy cùng đồng bộ một thư mục Drive, dữ liệu có thể bị mất nếu họ ghi đè cùng một tệp trong cùng thời điểm.
- Không có backup local: Khi
pullghi đè tệp local (chỉ tệp cũ hơn), bản cũ sẽ biến mất. - Không hỗ trợ Windows.
- Một số hệ thống tệp (NFS, SMB) không được khuyến khích do cơ chế lock và cache không đáng tin cậy.
Dành cho người dùng Việt Nam
Với những ai thường xuyên làm việc trên nhiều máy tính và cần đồng bộ dữ liệu với Google Drive — từ tài liệu cá nhân, mã nguồn đến dữ liệu nghiên cứu — DriveSync là một lựa chọn tuyệt vời thay thế cho ứng dụng Google Drive desktop chính thức, vốn thường ngốn RAM và đôi khi không ổn định. Đặc biệt, khả năng loại bỏ các tệp hệ thống như .DS_Store (qua file .driveignore) giúp thư mục đồng bộ luôn sạch sẽ, chỉ chứa đúng dữ liệu bạn cần.
Nếu bạn quan tâm đến quyền riêng tư và kiểm soát dữ liệu, việc tự tạo OAuth client và quản lý token trong thư mục .gd/ (mode 0600, không bao giờ tải lên) là một điểm cộng lớn so với các ứng dụng đồng bộ thương mại.
Dự án được phát hành dưới giấy phép MIT, hoàn toàn mã nguồn mở tại GitHub, rất phù hợp cho cộng đồng developer Việt Nam muốn đóng góp hoặc tùy biến theo nhu cầu riêng.