• Dropbox

    WebDAV

    Integration.

    We wanted to edit our Pages files on our iPads. Apple supports WebDAV in-app, but our files are in Dropbox.

    We built DropDAV to bridge the gap.

    Learn More

Opportunity

The iWork Apps for iPad had very clunky file import/export methods. Emailing the file back and forth to yourself, or connecting your iPad to iTunes were originally the only options. We longed for Dropbox integration. When WebDAV server support was added, we knew we could shoehorn in Dropbox access.

Setting up a WebDAV server using Apache on Linux was straightforward enough for our developers. But the Linux Dropbox client at the time wasn't very robust, and maintaining a whole copy of our Dropbox just for WebDAV access was not very elegant. The death knell to the Apache WebDAV + Dropbox client solution was the difficulty of supporting multiple users / multiple Dropbox accounts. It just wasn't workable.

Enter the Dropbox API and a PHP WebDAV server implementation—

Read About the Solution

Tools

Most of the core and ancillary technologies that make DropDAV possible.

Web Application

Ruby / Rails (3.2/1.9.3) Heroku

  • Resque
  • PayPal
  • Webhooks
  • External Postgres Database
  • Rake Health Monitoring

WebDAV Server

PHP/Python Hybrid Application Linode Self-Managed Cloud Servers

PHP/Python
  • [PHP] Request Routing
  • [PHP] Dynamic Request Parsing / Response
  • [PHP] Authorizes Over REST API
  • [PHP] Postgres Activity Logging / Memcached Message Passing
  • [Python] Two-Way Dropbox API Communication
Infrastructure
All services duplicated across redundant, independent cloud servers.
  • NGINX SSL Termination / Load Balancing
  • Apache2 / ModPHP Application Server
  • Heartbeat / Pacemaker Cluster Resource Manager
  • PostgreSQL Activity Log Database
  • Memcached

Solutions

The iWork for iPad Apps could communicate over the WebDAV protocol, and Dropbox supported practically all of its functionality over its new REST API. We just needed something to stand between them and act as a translator.


PHP WebDAV Server

Based on an open source implementation of the WebDAV specification written in PHP, we filled in the sections of code around file system operations to substitute calls to the Dropbox API.


Python Middleware

DropDAV got a lot of traction almost immediately after its release. A lot of the new users were from non-English speaking parts of the world, and they quickly unearthed a bug that eluded our testing: PHP wasn't correctly handling non-Latin characters. Python's native Unicode support gave us an easy win, we just had to wrap all the Dropbox API calls in Python and pass messages about the requests between our PHP and Python components.


A Setback

Nick Farina

About a week before we were to launch DropDAV, while doing some market research, we stumbled upon Nick Farina's "DropDAV". Nick's a super talented developer, had a much larger network, had coincidentally chosen the same name, beat us to launch, was giving it away for free, and had released the source code. His version ran on Google App Engine, so it was limited to 1 MB file transfers. We got in touch, and he graciously renamed his version "DropDAV Limited".

DropDAV Translates Between WebDAV and Dropbox's REST API
1. WebDAV Request

The WebDAV client makes a WebDAV protocol request (GET, POST, DELETE, etc.) to DropDAV's WebDAV server.

2. Request Parsing

Our PHP WebDAV server parses the incoming request to determine which Dropbox API requests are necessary.

3. Dropbox API Requests

Python middle-ware performs the communicates with Dropbox because its support for Unicode is superior to PHP's.

4. Response Preparation

The PHP WebDAV engine parses the response from Dropbox's API, and converts it into a WebDAV-ready format.

5. Dynamic Response

To cope with the many idiosyncratic WebDAV clients, known clients receive responses in formats tailored to their expectations.

Outcomes

In the 4+ years since its late 2010 release, DropDAV has reached hundreds of thousands of people all across the globe. It's the gold standard for keeping files synced between Dropbox and half a dozen various iOS applications.

We're most proud of the number of customers that have taken the time to write us letting us know how positively DropDAV has affected their work and life.


In The Press

Lifehacker

We obviously love Dropbox, so more ways to gain access to our Dropboxes is a wonderful thing. DropDAV makes your Dropbox accessible via WebDAV so you do just that.
Read more


Lifehacker

I'm surprised that Dropbox hasn't added WebDAV support to the service it provides; it's something that many thousands of its users have asked for. But until Dropbox adds built-in WebDAV support, DropDAV is a good workaround.
Read more


Lifehacker

Personally, I've been waiting for this capability since iWork for iPad came out, and now it's possible. Chances are very good that Apple will never add native support for Dropbox ... so DropDAV will continue to be a super way to shuttle between Dropbox and your iPad.
Read more


Merlin Likes

blogger
On iCloud's Fallibility

For Pages, Numbers, Keynote, OmniGraffle, OmniOutliner, iThoughts, and all of them, I'm going to go back to DropDAV for now because I think that's the only way that this is going to work for me to know that it is in the place of truth, which is the server I trust, which is the Dropbox server. ... For what it's worth, I would say that if you like Dropbox, at least have a look at DropDAV, it's a really neat service.

Merlin Mann on Back to Work #37

Key Performance Indicators

400+%

Return on Investment

20 MM+

Serviced Requests

100k+

Users

45

Countries with 1,000+ Visitors

3,056

Lines of WebDAV Code

SEGFAULTS

Official WebDAV Server Test

Contact Us

2431 Mission Street
San Francisco, CA 94110

+1 (855) 676-4533
[email protected]

Around the Web

© 2017 Smiles and Laughs Company

Terms of Use & Privacy Policy
Hello world