Cloud Drives

Design and research for cloud drive integration. This covers both functionality provided by GNOME and available 3rd party solutions.

Background / Scope

Cloud drives that are of interest:

  • Google Drive
  • Nextcloud
  • Dropbox
  • NAS?

Google Drive is unique in that it provides both storage for files and Google Docs - which aren't files.

Goals

TBD

Relevant Art

GNOME 3.32

  • Google Drive and Nextcloud appear as remote locations when they're added through online accounts
  • Each drive is remote only - there's no local cache or syncing
  • Google Docs are shown as files; if you click them, they open in the browser

Deja Dup

Deja Dup

  • Well-known Linux backup tool
  • Can use Google Drive or Nextcloud for storage
  • Backups aren't saved in a format that can be easily browsed - uses incremental tarballs to allow restoring from different points in time

Backup and Sync from Google

Backup and Sync from Google

Key features:

  • Configure which local directories are synced
  • Status icon shows list of recent/in-progress sync operations
  • Google Docs items are shown as files in the file browser; clicking them opens them in the web browser

Third party Google Drive apps

  • Insync - a 3rd party Google Drive synchronisation app, with a wide range of features. It's proprietary and costs a one time fee of $30.

  • OverGrive - another 3rd party sync client. Proprietary and costs $4.99 per Google account.

  • ODrive - simple open source sync app, which is available through Flathub.

  • Rclone - a command line tool that allows syncing to a wide variety of cloud drives. There are a number of graphical apps that use it, including RcloneBrowser, which is available for some distributions.

Nextcloud Desktop

Nextcloud Desktop

Synchronisation client. Shows notifications when things are synced, allows configuration of what's synced.

Dropbox Desktop Client

Dropbox Desktop

The Linux version of the Dropbox app is fairly basic compared to the one on Windows and Mac, but it works: it does sync, and you can configure what gets synced. You also get notifications when something changes.

Discussion

Google Drive vs. the others

Most cloud drives are restricted to files, and the primary UI for interacting with content is the file manager (on the desktop - mobile is different). For example, while Dropbox has a web interface it doesn't feel like something you can do serious work with. The expectation is that you're interacting with files locally.

Google Drive is different: on the desktop the primary UI is the web interface. This is obviously influenced by the fact that Google Drive doesn't just contain files - and the web interface is able to do a better job of working with Google Docs than the file browser is. (It also helps that the web interface works very well.) The fact that the desktop client is called "backup and sync" is instructive: it is a utility that can be used for a particular feature, rather than being the primary desktop interface for Google Drive.

Desktop vs. mobile

It is striking that cloud drive mobile apps generally take a different approach to desktop apps: desktop apps tend to sync everything, whereas mobile apps tend to do more limited caching. The reasons for this:

  • Desktops tend to have more storage capacity.
  • Desktop bandwidth is generally a binary of on/off rather than operating within limits like mobile.
  • Desktops tend to be where files are created and are where large collections of pre-existing files might be found. Sync is a fairly good workflow for adding files to a cloud drive.

Syncing vs. caching

Caching

Syncing

Good if you don't want to store everything locally (such as if files originate on the remote and are large and/or many)

It works if have plenty of disk space

File access is likely to be slower than syncing

File access is likely to be faster than caching

Adding files to a cloud drive could be a bit awkward?

Good if you want to add prexisting files to a cloud drive and keep a copy locally

Can fail you in an offline situation

Good for offline working, since you don't need to worry about making sure you have up to date local copies

Risk of files being empty placeholders or being out of date

Consistent with how filesystems work - people learn to expect files to be there and be up to date

Of course you could cache by default but allow the user to selectively sync if they'd prefer, and that's how some mobile apps work...

Tentative Design

See Also

  • Cloud Providers Whiteboard - design page for cloud drive integration in Files

  • csync - bidirectional file synchroniser command line tool. Used by the ownCloud/Nextcloud desktop clients.

  • drive - simple Google Drive command line tool

Comments

Design/Whiteboards/CloudDrives (last edited 2019-04-04 13:43:24 by AllanDay)