Giter Site home page Giter Site logo

gcsf's Introduction

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.

gcsf's People

Contributors

harababurel avatar platinum55 avatar ignatenkobrain avatar alexdvorak avatar cubox avatar eujing avatar gkdoc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.