GSoC'17 : DropBox V2 Integration

Try starting with a development environment: ownCloud Documentation Overview.
Then try mounting Dropbox with the current external storage app (it’s still using v1). Docs about mounting here: ownCloud Documentation Overview

For the Dropbox v2 there is a description in the ticket: Port Dropbox external storage to the new API · Issue #25969 · owncloud/core · GitHub.
Ideal would be to first develop a Flysystem plugin (or adjust their v1 plugin) to support Dropbox v2 API: https://github.com/thephpleague/flysystem-dropbox/issues/14

Then use this plugin within ownCloud to mount Dropbox.
The old Dropbox connection code is here: core/apps/files_external/lib/Lib/Backend/Dropbox.php at v9.1.4 · owncloud/core · GitHub and here core/apps/files_external/lib/Lib/Storage/Dropbox.php at v9.1.4 · owncloud/core · GitHub. You might notice that this one does NOT use flysystem.

The new Dropbox v2 external storage backend for ownCloud must be developed as a new ownCloud app “files_external_dropbox” and uses the flysystem Dropbox v2 plugin. Here is an example ownCloud app that uses Flysystem for FTP, it should be possible to use it as inspiration to do the same for Dropbox: GitHub - owncloud/files_external_ftp: Flysystem based ftp backend for ownCloud.

Important: the new app must be able to reuse the Dropbox configuration from existing mounts when upgrading from older ownCloud versions.

So here’s a summary of the plan:

  1. Port Flysystem Dropbox v1 adapter to v2: https://github.com/thephpleague/flysystem-dropbox/issues/14
  2. Develop a new ownCloud app “files_external_dropbox” that uses the adapter from step 1 to mount Dropbox in ownCloud.
1 Like