Check out ExpanDrive for Teams - Centralized cloud based configuration console for Teams

How to Use OneDrive for Linux

It’s 2020 and both OneDrive and Linux are more popular than ever, but Microsoft provides no official client to connect to OneDrive or Sharepoint on Linux.

ExpanDrive is a powerful OneDrive for Linux client that supports Ubuntu, Linux Mint, CentOS, Fedora, Redhat and most popular distributions. It supports two-way sync via a mounted drive to OneDrive, OneDrive for Business and Sharepoint by securely connecting to the Microsoft Graph API.

Unlike other clients, ExpanDrive doesn’t pre-sync your data to a hot folder taking up time, disk space, and bandwidth downloading data you don’ need. It accesses OneDrive, OneDrive for Business, and Sharepoint on-demand by only downloading the data you or your app asks for.

Download ExpanDrive v7.6.5
Released October 13th, 2020

ExpanDrive 7 runs on Ubuntu, Red Hat, Linux Mint, CentOS, Debian and most other popular distributions. We provide Deb and RPM based installers and have an integrated auto-updater to help you stay up to date. ExpanDrive connects to OneDrive, Sharepoint and OneDrive for Business as a fast network drive.

Watch this video on YouTube.
Connecting to OneDrive on Linux with ExpanDrive 7
OneDrive mounted directly within the filesystem

OneDrive client options on Linux

Most of the major cloud storage providers don’t provide any first-party client for Linux. Microsoft does not seem to have any plans to provide a Linux client for OneDrive/Sharepoint, despite the huge base of Office 365 customers who run on Linux. With an increasing number of users running Linux as their primary operating system having a solution to connect to cloud storage is more important than ever.

There are a few open-source options that provide a sync style client, such as skilion’s command-line OneDrive client. However, unless you’re a power user this option can be pretty intimidating. It also is a sync client, which means you’re going to be syncing down a lot of extra data you might not need.

Installing ExpanDrive

Download ExpanDrive for Linux v7.6.5
Released October 13th, 2020

Desktop based installations

ExpanDrive ships primarily as a desktop app with a user interface for advanced configuration and management. We also have a server edition that runs headless for Windows and Linux Servers.

Debian and Ubuntu based desktop distributions

For Debian and Ubuntu based distributions the easiest way to get started is to download and install the latest .deb package (64 bit), either through the graphical installer or via the command-line with the following command.

sudo apt install ./ExpanDrive_7.6.5_amd64.deb

Installing the .deb will also automatically install the apt repository and code signing key to enable easy update using the system package manager.

You can install the repository and key manually with the following script

curl https://packages.expandrive.com/keys/expandrive.asc | gpg --dearmor > packages.expandrive.gpg
sudo install -o root -g root -m 644 packages.expandrive.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.expandrive.gpg] https://packages.expandrive.com/expandrive stable main" > /etc/apt/sources.list.d/expandrive.list'

Then you update the package cache and install ExpanDrive using:

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install expandrive

RHEL, Fedora, and CentOS based desktop distributions

Download our latest .rpm package (64-bit) and use yum to install ExpanDrive and the required dependencies.

sudo yum localinstall ./ExpanDrive-7.6.5.x86_64.rpm

Installing the .rpm will also automatically configure the yum repository and code signing key to enable easy update using the system package manager.

You can install the yum repo manually using the following script:

sudo rpm --import https://packages.expandrive.com/keys/expandrive.asc
sudo sh -c 'echo -e "[expandrive]\nname=expandrive\nbaseurl=https://packages.expandrive.com/rpm\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.expandrive.com/keys/expandrive.asc" > /etc/yum.repos.d/expandrive.repo'

Then update your package cache and install Expandrive using dnf (Fedora 22 and above):

sudo dnf check-update
sudo dnf install expandrive

or using yum

yum check-update
sudo yum install expandrive

Server/Headless Edition

Head over to our ExpanDrive Server Edition page for instructions and packages for Windows and Linux servers. ExpanDrive Server edition is designed to run unattended, at boot [versus login], and provides drives that can even be re-shared on the network.

We are currently in public beta testing for this server edition designed to run without any user interaction. If you’re interested in joining the beta, please send an email to support@expandrive.com letting us know which distro you’re running and what your rough use-case is.

Mounting a OneDrive Network Drive on Linux

ExpanDrive is a OneDrive client that lets you connect your files using a fast network drive. Like Microsoft’s built-in client on Windows 10, everything is accessed on demand. You can browse and open any file from within your file manager or from the command-line. ExpanDrive builds native access to OneDrive into Linux.

ExpanDrive includes a powerful cloud storage browser

Amazing Reviews

allan-odgaard

“ExpanDrive lets you mount remote sftp drives and it actually works! I.e. no long delays or dropped connection in the middle of a save.”

Allan Odgaard, TextMate

DF-Star-Logo

“My first impression after reading ExpanDrive’s promotional description last week was that it sounded too good to be true. One week later, I’m pretty sure it actually is that good.”

John Gruber, Daring Fireball

Hello, Linux

ExpanDrive is currently shipping for Linux Desktop environments, with a server version coming soon.

  • Ubuntu
  • Linux Mint
  • Fedora
  • Centos
  • Redhat
  • Arch Linux
  • OpenSUSE
  • Debian

OneDrive Network Drive

ExpanDrive for Linux has a full featured file explorer as well as a fast network drive client. This builds support for OneDrive into every application in your environment, including terminal apps and the file explorer.

Using Sharepoint on Mac

There are a variety of good ways to access Sharepoint document libraries from your mac. Some, such as plain access via the web, don’t offer much in the way of native integration. While others provide a full native filesystem interface that lets you access Sharepoint as a mapped drive.

Sharepoint via the Web

Most users get to Sharepoint via the web. It has all features that Sharepoint offers, is managed by Microsoft, and is relatively easy to use. The biggest downside to this method is that there is no native integration with any of your existing workflow and applications you use to manage and generate content. In order to get the richest experience via the web you’ll want to make sure you have a modern version of your browser. Microsoft keeps this list of supported browsers.

Mapping a Drive via WebDAV

While mounting Sharepoint as a network drive you can use WebDAV in certain situations in a Windows environment, it doesn’t function correctly on Mac when connecting to Office 365. It doesn’t support modern authentication constraints like 2 factor auth or any login federation. Additionally, it only provides a simple read/write interface and none of advanced sharing functionality.

Microsoft Document Connection

In versions of Office previous to 2016 Microsoft included an app called Document Connection to move data in and out of Sharepoint, but it has been since discontinued in favor of more direct integration inside the office 365 apps.

Mapping a Network Drive

Third-party tools like ExpanDrive integrate directly with the Sharepoint API building in native access to any Mac. A user authenticates one time using the same login flow a they access Office 365 via the web, including MFA and SAML configurations. They can then access their entire Sharepoint setup as a fast, aggressively cached network drive that provides advanced features like smart-sync offline mode, integrated link sharing, and more.

OneDrive sync client

Another option is to use the OneDrive sync client to access Sharepoint on your mac. It provides reasonable integration and speed and is available from Microsoft. However, it doesn’t make managing a configuration with fine grained permissions and many different sites particularly. easy.

Map Google Drive on Mac, Windows and Linux

Learn how to connect to Google Drive as a fast network drive on Mac, Windows or Linux. Access your entire Google GSuite account on-demand without having to suck up disk space by pre-syncing all of your data.

Learn More
Download ExpanDrive
Version 7.6.5 for Mac, Windows and Linux
October 13th, 2020

Getting started with Google

Google Drive is Google’s file storage and sharing product for GSuite. For personal accounts it comes with 15GB of free online storage. Business, enterprise and academic GSuite plans have unlimited storage.

Most people use Drive via their browser directly at https://drive.google.com. Serious users need a full native integration on their desktop that lets them access files in the cloud from within any application.

Google provides native integration options such their iOS/Android App and their backup and sync client, available for regular GSuite accounts. If you’re looking to get full native access to Google Drive in Finder or Explorer a shared network drive is a great option.

Mounting Google Drive

ExpanDrive is a powerful Google Drive client that connects to Google’s API transforming Drive into a fast network drive. It makes your entire accounts available from any app on your desktop.

Learn More
Download ExpanDrive
Version 7.6.5 for Mac, Windows and Linux
October 13th, 2020

A mounted volume of a single team drive

Sync clients generally require you pre-download and keep a copy of all the files you’re interested in on your machine. This takes up valuable harddrive space, time and bandwidth. Often for files you don’t need. With a shared drive you can access everything on-demand. If your company has many TB of data stored in the cloud and you travel with a small laptop, a mapping a network drive to Google lets you have the best of both worlds.

Connect to multiple accounts

Another nice thing about connecting to Google Drive as a network drive is that you can connect to multiple Google Drive accounts at the same time. You can map the root of your Google Drive or an individual Team Drive as a drive letter. You can even configure ExpanDrive to mount individual folders within your personal drive or within a Team Drive. If you’re working on a project confined to one tree of folders, this can be really convenient.

Powerful Server Edition

Head over to our ExpanDrive Server Edition page for instructions and packages for Windows and Linux servers. ExpanDrive Server edition is designed to run unattended, at boot [versus login], and provides drives that can even be re-shared on the network.

Requirements

ExpanDrive supports macOS 10.10 or newer and a wide variety of Linux distributions including Ubuntu, Linux Mint, Centos, Fedora, Redhat, and more. Learn more about how to install ExpanDrive for Linux here.

ExpanDrive runs on Microsoft Windows 7 through Windows 10. Windows Server is also supported as well as RDP/Terminal services environments. ExpanDrive can isolate multiple users logged into the same machine so they each have their own view of cloud storage.

Map specific Team Drive

Let’s say you’re working on a team of people that is all using the same Team Drive. You can map that team drive to its own drive letter by configuring the remote path inside ExpanDrive. All of the team drives are organized in the “Team Drives” folder. If you had a Team Drive named “work” you could mount just that by setting the remote path to “/Team Drives/work” inside ExpanDrive.

Set the remote path to mount a specific Team Drive or folder

Files on demand

Saving disk space or accessing huge shared Google Drive accounts is another great thing about ExpanDrive and Google Drive. Everything is accessed on demand without preemptively syncing data back and forth. So if you were working on a huge Team Drive like in the previous example you could mount that entire space without needing to first sync it to your computer. You can also easily mark files to be available as offline so you can get work done even without an internet connection.

Access Google Drive as a shared drive

ExpanDrive lets you actually mount your Google Drive account as a virtual drive, just like a USB Drive, on Mac or Windows. It adds Google Drive to Finder so you can browse and access your Drive account without needing to first sync your files, which takes up time and space on your laptop. Just access what you need, when you need it, from within any app like Finder, Windows Explorer, Microsoft Word, Photoshop, or whatever you use. Everything is safely in the cloud but not taking up space on your computer. Isn’t that the point of cloud storage anyways?

Free up hard drive space

What good is a 10TB account if your only supported mechanism move data is via sync. Jason Snell recently wrote a piece at Six Colors called the Dropbox Terabyte Conundrum about this same problem with Dropbox’s new 1TB plan. Using Sync to move your data means you need to pick a folder that mirrors your Drive account and then keep a copy of all that data on your machine. So unless your laptop have a 10TB Drobo or Synology NAS attached to it, then you can’t really DO much with a 10TB Google Drive account. Unless you have ExpanDrive.

ExpanDrive
Watch this video on YouTube.
Download ExpanDrive for Mac, Windows & Linux

S3 Browser for Mac, Linux and Windows

Amazon S3 Browser for Mac, Linux and Windows

ExpanDrive is a fast and powerful Amazon S3 client that lets you browse S3 (or S3-compatible) storage. It builds native access to S3 directly into Finder and your Mac system at the filesystem level. Finder and Explorer, or any other application, can browser you S3 buckets natively and access the remote content on-demand. It effectively turns your Mac, Windows or Linux machine into a S3 Browser. This lets you browse S3 storage without needing to sync down any of the data in advance. You can view buckets, manage files, and transfer large amounts of data from within any application.

Browse an Amazon S3 Bucket from within Finder

In addition to filesystem integration, ExpanDrive 7 has a powerful cloud storage browser and file manager. It surfaces more advanced features of S3 like setting the ACL for a given object, or modifying its storage class.

Browse S3 from within a full-featured cloud storage browser

If you’re looking for a simple S3 uploader, ExpanDrive’s storage browser has a blazing fast uploader built in that is designed for bulk upload and data migration. Files are uploaded in the background with our multi-threaded transfer engine. This makes uploads feel instant and doesn’t leave you waiting on transfers while you continue to go about your work.

Learn More
Download ExpanDrive
Version 7.6.5 for Mac, Windows and Linux
October 13th, 2020

S3 Browser options for mac

Most consumer-focused cloud storage services like Dropbox or Google Drive come with their own desktop sync client. S3 is different in this respect. It is a developer/infrastructure focused service that is primarily accessed by an API that you need a third party client to access. Amazon provides a fairly basic web interface, but other than that the only way to get data in and out of it is via the API.

There are a wide variety of clients to access S3, like S3 Browser or Transmit for the Mac. DragonDisk used to be targeted on this use-case but development ceased a few years ago. Most of these provide basic access to S3, but don’t provide native access to content. ExpanDrive provides advanced functionality and also turns S3 into an infinite-capacity external drive.

Bucket level organization

To get started you load ExpanDrive and input your access key ID as well as your secret key. Connecting mounts the root of your AWS account. Now you can use Finder or Explorer to browse your buckets and then drill into them.

S3 is organized into buckets, which are top-level folders that are uniquely named throughout the service. You can attach various policies to a bucket such as restricting access to particular users or making hosted content available to the public. ExpanDrive lets you mount the root of your S3 account, showing you all your buckets (if your user has permission to list buckets). You can restrict mount a specific bucket, or even a particular folder in a bucket, by typing the bucket name in the remote path section. For additional details you can check out our documentation on connecting to S3. This is useful if you have an IAM user with access to only a single bucket or doesn’t have the permissions to list the buckets for an account.

Powerful Server Edition

Head over to our ExpanDrive Server Edition page for instructions and packages for Windows and Linux servers. ExpanDrive Server edition is designed to run unattended, at boot [versus login], and provides drives that can even be re-shared on the network.

Browse S3-Compatible storage like Wasabi

Amazon provides a simple guide to get started with their S3 service. ExpanDrive is also compatible with any S3-protocol compatible service like Wasabi or Dream Objects. For Wasabi ExpanDrive has a built-in connection profile. But you can also select the Amazon S3 connection profile and modify the server field to connect to storage services like Dream Objects, Ceph, Cleversafe, Oracle and more.

Click Save or Connect and you’re good to go. Amazon S3 will now be visible as a network drive whenever you login to your computer – letting you access all of your content from Finder, Explorer, Photoshop, Microsoft Office – whatever!

Drag and drop files to copy them out to the cloud. You can even stream media content like movies and music directly from the S3 storage without needing to first download or sync them. For more information, check our documentation page on connecting ExpanDrive to S3.

Download ExpanDrive

System Requirements

ExpanDrive supports macOS 10.10 or newer and a wide variety of Linux distributions including Ubuntu, Linux Mint, Centos, Fedora, Redhat, and more. Learn more about how to install ExpanDrive for Linux here.

ExpanDrive runs on Microsoft Windows 7 through Windows 10. Windows Server is also supported as well as RDP/Terminal services environments. ExpanDrive can isolate multiple users logged into the same machine so they each have their own view of cloud storage.

Powerful Dropbox Client for Linux

Dropbox for Linux

Dropbox is one of the storage providers with a Linux client, but their Smartsync technology has never made it over. ExpanDrive is still the most powerful Dropbox client for Linux that supports a full range of powerful Dropbox features. It runs on Ubuntu, Red Hat, Linux Mint, CentOS, Debian and most other popular distributions. ExpanDrive is currently shipping a a desktop app and a server edition for Linux and Windows Server.

Download ExpanDrive for Linux v7.6.5
Released October 13th, 2020

ExpanDrive runs similarly to a network drive making your content available on-demand. You can configure ExpanDrive to mount the root of your Dropbox account, or map it to a specific folder. In addition to a Linux client, ExpanDrive also runs on Mac and Windows and supports customization and enterprise distribution to help you deploy into large organizations.

Advantages over sync

Sync clients eat up large amounts of storage, keeping copies of all the files you might have access to locally rather than leaving them in the cloud and only downloading them on-demand. If you’re on the road with limited storage on your laptop, this takes up valuable space and bandwidth – often for files you don’t need.

Additionally, this method of access scales poorly as your organization grows in headcount and file count. Using ExpanDrive as a native client to map a network drive to Dropbox lets you have the best of both worlds.

Getting started – Download ExpanDrive

Desktop based installations

ExpanDrive ships primarily as a desktop app with a user interface for advanced configuration and management. We also have a server edition that runs headless for Windows and Linux Servers.

Debian and Ubuntu based desktop distributions

For Debian and Ubuntu based distributions the easiest way to get started is to download and install the latest .deb package (64 bit), either through the graphical installer or via the command-line with the following command.

sudo apt install ./ExpanDrive_7.6.5_amd64.deb

Installing the .deb will also automatically install the apt repository and code signing key to enable easy update using the system package manager.

You can install the repository and key manually with the following script

curl https://packages.expandrive.com/keys/expandrive.asc | gpg --dearmor > packages.expandrive.gpg
sudo install -o root -g root -m 644 packages.expandrive.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.expandrive.gpg] https://packages.expandrive.com/expandrive stable main" > /etc/apt/sources.list.d/expandrive.list'

Then you update the package cache and install ExpanDrive using:

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install expandrive

RHEL, Fedora, and CentOS based desktop distributions

Download our latest .rpm package (64-bit) and use yum to install ExpanDrive and the required dependencies.

sudo yum localinstall ./ExpanDrive-7.6.5.x86_64.rpm

Installing the .rpm will also automatically configure the yum repository and code signing key to enable easy update using the system package manager.

You can install the yum repo manually using the following script:

sudo rpm --import https://packages.expandrive.com/keys/expandrive.asc
sudo sh -c 'echo -e "[expandrive]\nname=expandrive\nbaseurl=https://packages.expandrive.com/rpm\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.expandrive.com/keys/expandrive.asc" > /etc/yum.repos.d/expandrive.repo'

Then update your package cache and install Expandrive using dnf (Fedora 22 and above):

sudo dnf check-update
sudo dnf install expandrive

or using yum

yum check-update
sudo yum install expandrive

Server/Headless Edition

Head over to our ExpanDrive Server Edition page for instructions and packages for Windows and Linux servers. ExpanDrive Server edition is designed to run unattended, at boot [versus login], and provides drives that can even be re-shared on the network.

Remote storage mounted directly within the filesystem
ExpanDrive includes a powerful cloud storage browser

Amazing Reviews

allan-odgaard

“ExpanDrive lets you mount remote sftp drives and it actually works! I.e. no long delays or dropped connection in the middle of a save.”

Allan Odgaard, TextMate

DF-Star-Logo

“My first impression after reading ExpanDrive’s promotional description last week was that it sounded too good to be true. One week later, I’m pretty sure it actually is that good.”

John Gruber, Daring Fireball

Box Network Drive

ExpanDrive for Linux has a full featured file explorer as well as a fast network drive client. This builds support for Box into every application in your environment, including terminal apps and the file explorer.

#1 Sharepoint Client for Linux

Sharepoint for Linux

Sharepoint is one of the most popular storage providers but lacks a Linux client. ExpanDrive is the most powerful Sharepoint client for Linux that supports a full range of powerful Sharepoint features. It runs on Ubuntu, Red Hat, Linux Mint, CentOS, Debian and most other popular distributions. ExpanDrive is currently shipping a a desktop app and a server edition for Linux and Windows Server.

Download ExpanDrive for Linux v7.6.5
Released October 13th, 2020

ExpanDrive runs similarly to a network drive making your content available on-demand. You can configure ExpanDrive to mount the root of your Sharepoint account, or map it to a specific folder. In addition to a Linux client, ExpanDrive also runs on Mac and Windows and supports customization and enterprise distribution to help you deploy into large organizations.

Advantages over sync

Sync clients eat up large amounts of storage, keeping copies of all the files you might have access to locally rather than leaving them in the cloud and only downloading them on-demand. If you’re on the road with limited storage on your laptop, this takes up valuable space and bandwidth – often for files you don’t need.

Additionally, this method of access scales poorly as your organization grows in headcount and file count. Using ExpanDrive as a native client to map a network drive to Sharepoint lets you have the best of both worlds.

Getting started – Download ExpanDrive

Desktop based installations

ExpanDrive ships primarily as a desktop app with a user interface for advanced configuration and management. We also have a server edition that runs headless for Windows and Linux Servers.

Debian and Ubuntu based desktop distributions

For Debian and Ubuntu based distributions the easiest way to get started is to download and install the latest .deb package (64 bit), either through the graphical installer or via the command-line with the following command.

sudo apt install ./ExpanDrive_7.6.5_amd64.deb

Installing the .deb will also automatically install the apt repository and code signing key to enable easy update using the system package manager.

You can install the repository and key manually with the following script

curl https://packages.expandrive.com/keys/expandrive.asc | gpg --dearmor > packages.expandrive.gpg
sudo install -o root -g root -m 644 packages.expandrive.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.expandrive.gpg] https://packages.expandrive.com/expandrive stable main" > /etc/apt/sources.list.d/expandrive.list'

Then you update the package cache and install ExpanDrive using:

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install expandrive

RHEL, Fedora, and CentOS based desktop distributions

Download our latest .rpm package (64-bit) and use yum to install ExpanDrive and the required dependencies.

sudo yum localinstall ./ExpanDrive-7.6.5.x86_64.rpm

Installing the .rpm will also automatically configure the yum repository and code signing key to enable easy update using the system package manager.

You can install the yum repo manually using the following script:

sudo rpm --import https://packages.expandrive.com/keys/expandrive.asc
sudo sh -c 'echo -e "[expandrive]\nname=expandrive\nbaseurl=https://packages.expandrive.com/rpm\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.expandrive.com/keys/expandrive.asc" > /etc/yum.repos.d/expandrive.repo'

Then update your package cache and install Expandrive using dnf (Fedora 22 and above):

sudo dnf check-update
sudo dnf install expandrive

or using yum

yum check-update
sudo yum install expandrive

Server/Headless Edition

Head over to our ExpanDrive Server Edition page for instructions and packages for Windows and Linux servers. ExpanDrive Server edition is designed to run unattended, at boot [versus login], and provides drives that can even be re-shared on the network.

Remote storage mounted directly within the filesystem
ExpanDrive includes a powerful cloud storage browser

Amazing Reviews

allan-odgaard

“ExpanDrive lets you mount remote sftp drives and it actually works! I.e. no long delays or dropped connection in the middle of a save.”

Allan Odgaard, TextMate

DF-Star-Logo

“My first impression after reading ExpanDrive’s promotional description last week was that it sounded too good to be true. One week later, I’m pretty sure it actually is that good.”

John Gruber, Daring Fireball

Box Network Drive

ExpanDrive for Linux has a full featured file explorer as well as a fast network drive client. This builds support for Box into every application in your environment, including terminal apps and the file explorer.

Map Google Drive as a Network Drive

Google Drive provides a backup and sync client forfor Mac and Windows that lets you sync the contents of your Drive to your desktop. But ExpanDrive is a special kind of Google Drive client that lets youmap Google Drive as a drive letter on Windows 7 through Windows 10 and on macOS. It connects directly to Google via their API and provides you with a virtual shared drive.

Download ExpanDrive for free

ExpanDrive lets you turn Google Drive into an actual shared drive. This has a number of advantages. First, you don’t have to sync in the entire library of content to actually use it. If your laptop only has 128G of storage, it’s pretty hard to make good use of a 10TB Google Drive account.

First Download ExpanDrive for Mac or Windows and install it. ExpanDrive sits in the system tray near your clock – just like the Google Drive client. Next you add a new Google Drive to ExpanDrive, click connect – and you’re done. You can now access Google Drive as a virtual drive from within any application on your Mac or PC. For more detailed instructions, check out our documentation on how to Map Google Drive as a drive using ExpanDrive.

High Leverage Development

During our third month of porting SftpDrive to OS X, it became clear that creating and maintaining a cross-platform codebase of high performance network and filesystem code would be far more effort than we had hoped. It wasn’t that the project was impossible, or even absurdly difficult. It just wasn’t any fun. Every time I looked at a #ifdef WIN32, it was even more clear the code was becoming much more tedious to debug and maintain.

It seems our work on Slingshot spoiled us. A few months working with Ruby, Objective-C and C# left us feeling happy and optimistic about programming—anything was possible! Needless to say, the tens of thousands of lines of procedural C in SftpDrive for Mac no longer brought about the same feeling of joy. It seemed unfair that hotshotwebdevelopers, with their pretty MacBooks, got all the attention, and they got to use fun high-level languages like Ruby or Python. We were developing a truly useful piece of technology, but were stuck on Windows and spending more than 50% of our time dealing with “pedestrian” details like pointers, memory management, IRQLs, and IRPs.

Still, we fancied ourselves hardcore and kept at it even though it was hard (and sometimes boring). When it was time to write an auto updater for SftpDrive we spent hours upon hours searching on Google and MSDN trying to find a clean implementation that would work on a vanilla Windows 2000 installation. One option, WinInet was ridiculously ugly and verbose. Another option, WinHTTP, didn’t work on Windows 2000 GM. We ended up using libCURL. It was a ridiculous and frustrating waste of time.

We wanted to import httplib, and then just start making things happen. XKCD hits the nail on the head:

XKCD python

We couldn’t afford to keep spending time and energy writing software this way. Even if we could afford it, we didn’t want to spend our time this way. Web applications were being developed at an astounding pace in part because of centralized management and deployment (they never have to maintain different versions for Macs and PCs), but also because they were using modern interpreted languages. Web developers also used community-developed open-source projects when they needed some help on a routine problem. They didn’t have to reinvent the wheel at every turn, but instead focused on the core of their product. With high-level languages and good libraries, small teams can create great products at a rapid pace. We realized that we could write applications for the desktop in the exact same way.

We rewrote SftpDrive from top to bottom in Python, with a GUI in Objective-C. It’s called ExpanDrive, and it took 1/3rd the time that SftpDrive took to develop. We greatly leverage Python and and many open source projects—just like a web-developer. To minimize conflicts and to have the necessary control over the runtime environment, our build process extracts only the necessary bits from the full python distribution and packages it into the .app. We trim Python from 5000+ files to a few more than 400. Like many OS X apps, we use Sparkle.Framework to automatically distribute and install updates. We’re pushing out weekly updates which include more than just bug fixes. ExpanDrive has been a breeze to maintain and extend and the core remains perfectly cross platform.

Desktop applications aren’t dead, they’re just about to really get going.

ExpanDrive 2 for Windows – FTP and S3, blazing fast SFTP

Nearly 5 years in the making – we are EXTREMELY excited to finally release [ExpanDrive 2 for Windows](https://www.expandrive.com). This is a major update in almost every way. ExpanDrive 2 adds support for plain FTP, FTP and Amazon S3 and our own [Strongspace Online Storage](http://www.strongspace.com) service. It boasts an all-new SFTP engine that should dramatically improve speed in both transfer and browsing. Along with the new drive types, the UI has been completely re-written to be much sexier, more intuitive and less complicated. We think you’ll really enjoy it.

[Download ExpanDrive v2.0.4 now! Free 30-day Trial](https://www.expandrive.com/ExpanDrive.exe)

A quick rundown of the major features:

* Sexy new interface. Simple and intuitive, even more than before.
* Blazing fast new SFTP layer.
* FTP and FTPS drives!
* Amazon S3 drives!
* Massively increased speed and throughout
* Dynamic reconnect support – always stay connected
* [Pagaent](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) Support for SSH keys
* On-disk data-cache for frequently accessed files.
* All new metadata-cache – faster browsing around.
* New filesystem driver
* Innumerable fixes and enhancements for MS Office sharing/locking
* Frequent updates – and a working auto updater

ExpanDrive 2 finally unifies our Mac and Windows products into one, in no small part through the magic of [python](https://www.expandrive.com/2008/03/26/high-leverage-development/). We can finally develop simultaneously on both platforms, with ease.

If you’ve already purchased a ExpanDrive 2 license for your Mac – that license is good for this Windows client. As of V2, our licenses are cross-platform. An upgrade license is $19.95 until the end of this week, and $24.95 thereafter.


A couple screenshots of the new UI in action.

Please send any feedback to [support@expandrive.com](mailto:support@expandrive.com) and we’ll help out as fast as we can.