Skip to content
a FUSE file system based on Google Drive
Branch: master
Clone or download
harababurel Merge pull request #59 from ignatenkobrain/patch-1
Exclude CI files from crates.io
Latest commit d2ab6ef Mar 31, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ci Add "set -x" Jul 3, 2018
src Bump version Feb 14, 2019
.gitignore
.travis.yml Fix travis rustfmt arguments Aug 10, 2018
Cargo.lock Fix occasional crashes caused by very frequent statfs calls. Feb 14, 2019
Cargo.toml Merge pull request #59 from ignatenkobrain/patch-1 Mar 31, 2019
LICENSE Add license Apr 17, 2018
README.md Add note to README. Mar 31, 2019
gcsf.service Specify User=... in service file in order to fix #37 Jan 11, 2019
sample_config.toml s/delete_permanent/skip_trash in sample config Feb 2, 2019

README.md

Build Status Crates.io Docs
GitHub Issues Downloads MIT License

GCSF is a virtual filesystem that allows users to mount their Google Drive account locally and interact with it as a regular disk partition. You can find out more in this paper.

Update (April 2019): I am currently still using and maintaining this project but I have very little time to dedicate to it. As such, it might take a while before I get around to fixing known bugs / implementing feature requests / responding to open issues. Thank you for understanding and for expressing sustained interest in this project!

Requirements

GCSF requires the stable branch of the Rust programming language, which can be installed following the instructions on rustup.rs. If you already have Rust installed, make sure that it is updated to the latest version (≥1.26):

$ rustup update stable

OSX

On Mac OSX, GCSF requires osxfuse and pkg-config:

$ brew update; brew install pkg-config; brew tap homebrew/cask; brew cask install osxfuse

Ubuntu

On Ubuntu, GCSF requires libfuse-dev and pkg-config:

sudo apt-get install -y libfuse-dev pkg-config

Arch Linux

An AUR package is maintained by axionl: gcsf-git.

Other linux distros

Make sure you have pkg-config and the fuse library installed. These are usually found in the package repositories of major distributions.

FreeBSD

Rust can be installed via the lang/rust port. You will need to install sysutils/fusefs-libs for the cairo install command to succeed.

Windows

Unfortunately, Windows is not supported at the time being. See issue #19.

Installation

After all requirements are met, GCSF can be installed using cargo:

$ cargo install gcsf

This will generate the gcsf binary in $HOME/.cargo/bin. Make sure that this directory is in your PATH variable: export PATH=$PATH:$HOME/.cargo/bin

Alternatively, you can download a release binary for your platform.

Configuration

GCSF will attempt to create a configuration file in $XDG_CONFIG_HOME/gcsf/gcsf.toml, which is usually defined as $HOME/.config/gcsf/gcsf.toml. Credentials are stored in the same directory.

Usage

The first step is to log in to Drive and authorize the application. A name must be provided for the session:

$ gcsf login some_session_name
Please direct your browser to https://accounts.google.com/o/oauth2/[...] and follow the instructions displayed there.
Successfully logged in. Saved credentials to "$HOME/.config/gcsf/some_session_name"

You can also list all existing sessions:

$ gcsf list
Sessions:
        - personal
        - some_session_name
        - work

And then mount one (or more) of them:

$ gcsf mount /mnt/gcsf -s some_session_name
INFO  gcsf > Creating and populating file system...
INFO  gcsf > File sytem created.
INFO  gcsf > Mounting to /mnt/gcsf
INFO  gcsf > Mounted to /mnt/gcsf

You can now find the contents of your Drive account in /mnt/gcsf:

GCSF ls

Using Ranger:

GCSF in Ranger

Or Thunar:

GCSF in Thunar

Why GCSF?

GCSF stands for "Google Conduce Sistem de Fișiere" which translated from Romanian is "Google Drive Filesystem". However GDFS already exists so it remains GCSF.

Contributing

Contributions are welcome. Documentation available on docs.rs/gcsf. You can also help by reporting or fixing issues.

You can’t perform that action at this time.