All Projects → astrada → Google Drive Ocamlfuse

astrada / Google Drive Ocamlfuse

Licence: mit
FUSE filesystem over Google Drive

Programming Languages

ocaml
1615 projects
shell
77523 projects

Projects that are alternatives of or similar to Google Drive Ocamlfuse

Gcsf
a FUSE file system based on Google Drive
Stars: ✭ 2,251 (-49.38%)
Mutual labels:  google-drive, fuse, filesystem
webfuse
websocket filesystem based on libfuse
Stars: ✭ 23 (-99.48%)
Mutual labels:  fuse, filesystem
Catfs
Cache AnyThing filesystem written in Rust
Stars: ✭ 404 (-90.92%)
Mutual labels:  fuse, filesystem
acid-store
A library for secure, deduplicated, transactional, and verifiable data storage
Stars: ✭ 48 (-98.92%)
Mutual labels:  fuse, filesystem
vk-music-fs
FUSE file system for VK audios
Stars: ✭ 34 (-99.24%)
Mutual labels:  fuse, filesystem
loggedfs-python
Filesystem monitoring with Fuse and Python
Stars: ✭ 21 (-99.53%)
Mutual labels:  fuse, filesystem
Goofys
a high-performance, POSIX-ish Amazon S3 file system written in Go
Stars: ✭ 3,932 (-11.58%)
Mutual labels:  fuse, filesystem
SSFS
Simple & Stupid Filesystem (Using FUSE)
Stars: ✭ 64 (-98.56%)
Mutual labels:  fuse, filesystem
ext2py
The slowest ext2fs driver ever! (in Python)
Stars: ✭ 14 (-99.69%)
Mutual labels:  fuse, filesystem
redis-fs
Mount a Redis database as a filesystem using fuse.
Stars: ✭ 76 (-98.29%)
Mutual labels:  fuse, filesystem
Jnr Fuse
FUSE implementation in Java using Java Native Runtime (JNR)
Stars: ✭ 266 (-94.02%)
Mutual labels:  fuse, filesystem
Svfs
The Swift Virtual File System
Stars: ✭ 375 (-91.57%)
Mutual labels:  fuse, filesystem
fuse-nfs-crossbuild-scripts
fuse-nfs for windows using dokany
Stars: ✭ 35 (-99.21%)
Mutual labels:  fuse, filesystem
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (-91.84%)
Mutual labels:  fuse, filesystem
fusell-seed
FUSE (the low-level interface) file system boilerplate 📂 🔌 💾
Stars: ✭ 13 (-99.71%)
Mutual labels:  fuse, filesystem
fuse xattrs
add xattrs support using sidecar files.
Stars: ✭ 28 (-99.37%)
Mutual labels:  fuse, filesystem
Winfsp
Windows File System Proxy - FUSE for Windows
Stars: ✭ 4,071 (-8.46%)
Mutual labels:  fuse, filesystem
fs-fuse
Export any Node.js `fs`-like object as a FUSE filesystem
Stars: ✭ 32 (-99.28%)
Mutual labels:  fuse, filesystem
luufs
Lazy man's, user-mode union file system
Stars: ✭ 28 (-99.37%)
Mutual labels:  fuse, filesystem
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (-95.12%)
Mutual labels:  fuse, filesystem

FUSE filesystem over Google Drive

Join the chat at https://gitter.im/google-drive-ocamlfuse/Lobby Docker Pulls

google-drive-ocamlfuse is a FUSE filesystem for Google Drive, written in OCaml. It lets you mount your Google Drive on Linux.

Features (see what's new)

  • Full read/write access to ordinary files and folders
  • Read-only access to Google Docs, Sheets, and Slides (exported to configurable formats)
  • Multiple account support
  • Duplicate file handling
  • Access to trash (.Trash directory)
  • Unix permissions and ownership
  • Symbolic links
  • Read-ahead buffers when streaming
  • Accessing content shared with you (requires configuration)
  • Team Drive Support
  • Service Account Support
  • OAuth2 for Devices Support

Resources

  • Homepage
  • Wiki: includes installation instructions, and more details about configuration, and authorization

Authorization

Please be sure to have a look at the authorization page, to understand how the authorization process works, and to discover all the available options.

Getting started

Installation

I've uploaded .deb packages for Ubuntu to my PPA. In order to to install it, use the commands below:

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse

New beta versions are available on this PPA. If you want to test them, use the commands below:

sudo add-apt-repository ppa:alessandro-strada/google-drive-ocamlfuse-beta
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse

For other installation options, please refer to the wiki.

How to build

Requirements

Configuration and installation

To build the executable, run

dune build @install

To install it, run (as root, if your user doesn't have enough privileges)

dune install

To uninstall anything that was previously installed, execute

dune uninstall

Usage

The first time, you can run google-drive-ocamlfuse without parameters:

google-drive-ocamlfuse

This command will create the default application directory (~/.gdfuse/default), containing the configuration file config (see the wiki page for more details about configuration). And it will start a web browser to obtain authorization to access your Google Drive. This will let you modify default configuration before mounting the filesystem.

Then you can choose a local directory to mount your Google Drive (e.g.: ~/GoogleDrive).

Create the mount point, if it doesn't exists:

mkdir ~/GoogleDrive

Then you can mount the filesystem (replacing [mountpoint] with the name of your desired folder):

google-drive-ocamlfuse [mountpoint]

If you have more than one account, you can run:

google-drive-ocamlfuse -label label [mountpoint]

Using label to distinguish different accounts. The program will use the directory ~/.gdfuse/label to host configuration, application state, and file cache. No file is shared among different accounts, so you can have a different configuration for each one.

To unmount the filesystem, issue this command:

fusermount -u mountpoint

Troubleshooting

This application is still under testing, so there are probably bugs to discover and fix. To be extra sure, if you want, you can mount the filesystem in read-only mode, modifying the configuration (see the documentation), to avoid any write attempt to the server. Anyway, the rm command will simply trash your file, so you should always be able to rollback any changes. If you have problems, you can turn on debug logging:

google-drive-ocamlfuse -debug mountpoint

In ~/.gdfuse/default you can find curl.log that will track every request to the Google Drive API, and gdfuse.log that will log FUSE operations and cache management. If something goes wrong, you can try clearing the cache, with this command:

google-drive-ocamlfuse -cc

If something still doesn't work, try starting from scratch removing everything in ~/.gdfuse/default. In this case you will need to reauthorize the application.

Note that in order to reduce latency, the application will query the server and check for changes only every 60 seconds (configurable). So, if you make a change to your documents (server side), you won't see it immediately in the mounted filesystem.

Note also that Google Documents will be exported read-only.

Support

If you have questions, suggestions or want to report a problem, you may want to open an issue on github.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].