File Transfer Widget

The lab needs a file-transfer widget to support app development. It should have the ability to:

  1. Interface with Dropbox (i.e., transfer user-specified files to the server).
  2. Interface with Google drive.
  3. Interface with OneDrive.
  4. Interface with Box.
  5. Upload files directly from the hard drive, using this very nice bootstrap plugin.

Each of these systems should be accessible through the same functions. So, for example, to identify a file I would always call the same TypeScript function, which would accept as one of its parameters which external file system to use (e.g., fileSystem = “DROPBOX”).

Here are the functions needed:

  1. Authenticate the user.
  2. Allow the user to specify which external file to transfer.
  3. Transfer the file from the remote system.
  4. Upload a file to the remote system.
  5. List the files on a remote drive.
  6. Delete/move remote files.

There are published packages that can do this, but as best I can tell they have some limitations:

  1. Dependency on external servers via REST API (which may or may not be here 5 years from now).
  2. Require a subscription.

It would be good to investigate before starting to make sure there isn’t suitable code already published.

I imagine this project will be publicly available and open sourced.