All project content is available for reading, but you need to be a member of the project for Subversion checkout of source code, or to create/modify any information.
Login if you are a member. Apply here to request membership (open to all).

Table of Contents

  1. DropboxVPP


The Virtual Path Provider (VPP) capability of EPiServer allows developers to make all sorts of resources available through the document management capabilities of EPiServer. With a custom VPP, you can even store files in the cloud. However, the way a VPP works is to stream that file through the server. This has it's advantages that the file always comes via your server, but the disadvantage is that it will burn your bandwidth. When files are not often used and small, this may not be an issue, but if the files are large and frequently downloaded you may want to find another way of working.

Dropbox is a cloud-based file storage system which provides API access and also direct file access for files within a user's 'Public' folder. The DropboxVPP module adds a custom VPP which makes Dropbox files available through EPiServer but, when they are requested, redirects to the file from Dropbox itself. This reduces the bandwidth to just the REST-based API calls between Dropbox and the server.


The following features are supported on the module:

  • File/Folder navigation
  • File summaries (stored in the DDS)
  • 'Deep linking' to a subfolder on Dropbox
  • Resilient API retries
  • Same file can have different summaries in different VPPs
  • Lazy-loading of various properties for better performance
  • Uses the DropNet library


You can download the zipped source code without logging in, or login and browse the source online or via your SVN client.


The only configuration required is to add your VPP to your episerver.config. An example, with all required properties, is shown below:

<add showInFileManager="true" virtualName="DropboxFolder" virtualPath="~/DropboxFolder/" 
bypassAccessCheck="false" indexingServiceCatalog="Web" cloudPath="/Public/folder/subfolder" 
APIKey="jhajshh23u11dhj" APISecret="vkjklf3225lcwp" Username="yourdropboxlogin@whatever.com" 
Password="happyd4z3" MetaDataRetries="5" name="DropboxFolder" customFileSummary="~/CustomFileSummary.config" 
type="EPiServerZA.VPP.DropBox.VirtualPathProvider,EPiServerZA.VPP.DropBox" />

DropboxVPP-specific attributes:

  • cloudPath - path within Dropbox, needs to be at least /Public/ but can be linked deeper if needed
  • APIKey - Dropbox API key (get yours from Dropbox Developer)
  • APISecret - Dropbox API secret (get yours from Dropbox Developer)
  • Username - Dropbox username
  • Password - Dropbox password
  • MetaDataRetries - how many times the VPP should retry to get folder meta-data if the REST call to Dropbox fails. Can be zero or higher.


Tickets for this component:

No results

Ask a question

Requires login.

Report a bug

Requires login.

Add a feature request

Requires login.



If you want to change and compile the source code:

  • Visual Studio 2010

Known Limitations

  • The username and password don't really need to be stored, only the user tokens, but this hasn't been fully implemented (they are grabbed every time the VPP starts up)
  • Folders outside of /Public/ don't work yet. They can probably be browsed, but downloads won't work.
  • Versioning not yet supported
  • Permanent links not yet supported
  • Because files on Dropbox have no unique ID, the file summary in the DDS is tied to the file path. This means that if the file is renamed/moved, then the file summary will be lost.
  • If no custom file summary is used, the VPP may behave unexpectedly because the default properties aren't fully implemented
  • Upload/Moving etc. is not yet supported through EPiServer, although this could be implemented too.

Contributed by

Dan Matthews, EPiServer South Africa