|0.2.6||Mar 29, 2023|
|0.2.5||Mar 1, 2023|
|0.2.4||Feb 10, 2023|
|0.2.3||Sep 2, 2022|
|0.1.0||Apr 25, 2020|
#236 in Filesystem
44 downloads per month
Note: For Nix users, the program is already packaged via Nix Flake in
Use your package manager to install these dependencies:
- fuse (libfuse)
Compile and install the program from crates.io:
$ cargo install onedrive-fuse
For the first time, you should register your own Application (Client) ID for the API access. Read
doc/register_app.mdfor detail steps.
Login to your OneDrive account with the Client ID of your own application from the previous step. By default, we only request for read-only access.
$ onedrive-fuse login --client-id <paste-your-client-id-here>
If you want read-write access, you should instead run,
$ onedrive-fuse login --read-write --client-id <paste-your-client-id-here>
This will prompt a browser window to ask you to login your Microsoft account for OneDrive. After a successful login, the web page will pass the result token back to onedrive-fuse automatically, and prints
Login successfully.You can close the web page now, and the command running above should also have exited successfully.
Your access token will be saved under XDG config directory, which is by default
~/.config/onedrive-fuse/credential.json. So you don't need to re-login every time. But if you are away for too long, eg. for months, you might have to re-login.
Create an empty directory as mount point, like
~/onedrive, and mount your OneDrive storage on it. By default the mounted storage is readonly.
$ mkdir -p ~/onedrive # The directory to be mounted should be empty. $ onedrive-fuse mount ~/onedrive
If you want to mount with read-write access, you must also request for read-write access in the previous login step. Then mount the storage with,
onedrive-fuse mount ~/onedrive -o permission.readonly=false
⚠️ Use read-write permission with care! Bugs may corrupt your files in OneDrive!
Once it's started, wait for seconds for initialization until
FUSE initializeddisplayed, indicating the filesystem is ready now. You can do whatever you want under the mount point.
The program runs in foreground by default, the terminal window should be kept open. You may need other mechanism like
systemd(see below) to make it run background.
If you are done for, run this command to umount the filesystem gracefully. You should NOT directly
Ctrl-Cor kill the
onedrive-fuseinstance, it usually cause data loss.
$ fusermount -u ~/onedrive
⚠️ We havn't yet implemented auto-waiting for uploading before shutdown. Please wait your upload session to be finished before umounting the filesystem. Or your pending upload session would be cancelled.
FUSE features implemented
- FUSE syscalls
- Statfs cache
- Inode attributes (stat) cache
- Directory tree cache
- Sync remote changes with local cache
- File read cache
- File write cache/buffer