Simple enough question, easy answer?
OneDrive for Linux. You’ve probably no doubt heard Microsoft whitter on about how much they love Linux and Open Source recently, but what about the use of their flagship products and their associated technologies? Microsoft Office has arguably got to be the most popular consumer application that Microsoft provide, and if you have used Office (or Office365) recently, you’ll see that saving your files to your PC is no longer the default option. In fact, in my opinion, its downright obfuscated. Instead, saving to their take of DropBox or Google Drive; Microsoft OneDrive is the default.
If you are ‘forced’ to use Microsoft products at work, there’s a good chance that they might be forcing you to save files into the cloud too. This is life, we can’t all be software freedom supremes!
So, the question is firstly, have Microsoft released an official OneDrive client for Linux? Put simply. No.
You had One job and now my Drive screwed it up….
Fear not! There are many ways to solve the conundrum, which might actually work out pretty well for you!
Here’s a few options for you, we will go into each of them in turn:
|Name||Website||More information||OneDrive for Business/365 Support?|
|OneDrive Official website||onedrive.live.com||Of course, you can always upload and download files via the official Microsoft OneDrive website. Yawn!||Yes|
|Rclone for OneDrive||rclone.org/onedrive||A command line client that synchronises OneDrive and other cloud storage services||No|
|DAVFS2 via WebDAV Protocol||savannah.nongnu.org/projects/davfs2||WebDAV is a file transfer protocol using HTTP, OneDrive uses WebDAV under the hood||Not natively|
|OneDrive free client||github.com/skilion/onedrive||A reliable CLI client. Includes state caching, Real-Time file monitoring with Inotify, Resumable uploads and Support OneDrive for Business (part of Office 365)||Yes|
|onedrived-old and onedrived-dev||github.com/xybu/onedrive-d-old and github.com/xybu/onedrived-dev||CLI client which offers two way sync. The new client is written in Python3 and is being actively developed.||No|
|GNOME 3 Desktop||http://www.gnome.org||The native GNOME desktop has built in support via the ‘Online Accounts’ feature to have read only access to your OneDrive||No|
|KDE Desktop||www.kde.org||The KDE desktop uses the Konqueror file browser, which also has a built in HTTP/web browser capability. This allows you to browse files and authenticate properly||Quite likely, via the Konqueror web page interface|
|SPFileZilla (mod)||github.com/suoko/spfilezilla||Written in Mono (open source .NET), it allows the user to access Sharepoint Online/OneDrive for Business clients via GUI that looks and operates just like the popular FileZilla FTP app.||Yes|
So, as you can see, you are spoiled for choice, but lets be clear here, if you are using OneDrive for Business (i.e., not the personal account that you sign up for online, but the business one that is managed by your company’s IT department on behalf of the users), then you are going to want OneDrive for Business/Sharepoint support. This immediately restricts you to either using the OneDrive website, or the OneDrive Free CLI client. I have heard that the KDE Konqueror file manager can also do this, however I have not tested it. Finally, there is the SPFileZilla, a modified version of the Windows version of an app with the same name. Effectively it is the Windows EXE file running on your desktop via Mono. Note that it works just like FileZilla, in that it behaves like a FTP client, upload and download – no file sync capability. The only client that offers two way sync is onedriveFree. In fact, the only feature that OneDriveFree does not currently support is Shared Folders, which can be a bit of a drag!
There really is no great way to use OneDrive for Linux. There are plenty of ways, however.
If you have OneDrive Personal, using DAVFS2 might be the cleanest option. You will see it using your file manager straight away and it will act pretty much like a normal network drive. Firstly, find out what your HTTPS WebDAV address should be (found HERE). You can either add an entry to your /etc/fstab (so that it is mounted on startup every time – recommended), or you can use GNOME Nautilus/Files (or KDE Konqueror) to mount it.
WebDAV is simply an HTTP file sharing protocol. Linux has strong support for it.
If you are using fstab, here is the sort of entry that you would use:
https://cid-blablabla.users.storage.live.com/items/blablabla /home/media/MS davfs user,noauto,file_mode=600,dir_mode=700 0 1
Make sure davfs2 is instaled on your machine before you do this obviously!
CLI based option
From the above table, clearly OneDrive Free is the leading client, supporting sync and OneDrive for business. Obviously you can still see the files it has downloaded in your normal file browser, however I can’t be 100% sure if this doesn’t cause any issues with file synchronisation. I’m pretty sure it won’t, but never say never!
Installation of OneDrive free requires you install a few things first (instructions for Debian/Ubuntu):
sudo apt-get install libcurl4-openssl-dev curl git(this number will vary depending upon the version of dmd, note the output of the dmd build command)
sudo apt-get install libsqlite3-dev
curl -fsS https://dlang.org/install.sh | bash -s dmd
git clone https://github.com/skilion/onedrive.git
Then simply start the tool by entering the word ‘onedrive -m &’ at the prompt. You’ll be given a URL to enter into your web browser. Enter this, log into OneDrive and you’ll end up on a blank page. Copy the URL of your browser back into the terminal, where it will be waiting for the URL. Once you enter it, a new folder in your home folder called ‘OneDrive’ will be made. It will start synchronising all of your OneDrive files.
Note that onedrive -m puts the tool into ‘monitor’ mode so that it can monitor for changes. Therefore, it runs permanently. Ideally you should run this in an init script or similar on startup, so you don’t have to run it from the terminal every time you start up your PC.
GUI (Graphical) Native options
On testing GNOME3’s latest ability to use OneDrive, I’d say its a bit of a joke. Read only file access is almost near useless. Konqueror should be able to accept your OneDrive token and start working like a normal file share – please post a comment if you get it working! However, if you are not a KDE user, like me, then this is a moot point! SPFileZilla is also an option, but it doesn’t support sync and its pretty ugly, considering you are really just using a Windows client! There is always the web browser with the OneDrive website, but again this is simple upload/download, no sync option.
Due to its maturity as a protocol and support under Linux, you can also choose to use WebDAV, but only if you are using OneDrive Personal.
Overall, however despite it being natively a CLI option, OneDrive FREE is the most feature rich, and once in monitor mode. Also, don’t forget that you can see all the files in your preferred GUI based file browser, such as Nautilus/GNOME Files etc. Have a look at the screenshot here: