In a project, I needed to get files shared to me by a client. Then I recovered ‘Drive’.
Drive is a Google Drive client for the commandline.
Why another Google Drive client?
Background sync is not just hard, it is stupid. Here are my technical and philosophical rants about why it is not worth to implement:
… (read more)
drive is not a sync daemon, it provides:
- Upstreaming and downstreaming. Unlike a sync command, we provide pull and push actions. The user has the opportunity to decide what to do with their local copy and when they decide to. Make some changes, either push the file remotely or revert it to the remote version. You can perform these actions with user prompt:$ echo "hello" > hello.txt $ drive push # pushes hello.txt to Google Drive $ echo "more text" >> hello.txt $ drive pull # overwrites the local changes with the remote version
- Allowing to work with a specific file or directory, optionally not recursively. If you recently uploaded a large VM image to Google Drive, yet only a few text files are required for you to work, simply only push/pull the exact files you’d like to worth with:$ echo "hello" > hello.txt $ drive push hello.txt # pushes only the specified file $ drive pull path/to/a/b path2/to/c/d/e # pulls the remote directory recursively
- Better I/O scheduling. One of the major goals is to provide better scheduling to improve upload/download times.
Possibility to support multiple accounts. Pull from or push to multiple Google Drive remotes. Possibility to support multiple backends. Why not to push to Dropbox or Box as well?
Installation and initiation is required for first time and so it was recorded in the separate post.
drive list 'Folder Name'
drive pull -verbose 'Folder Name'
What I like about Drive
- no fuss
- no out of sync file (Dropbox left me with conflicting sync)
- pull or push is my decision
- clever enough for me to download 240 MB photos