VulcanJS/vulcan-next

RFC: A fluid file management system

Opened this issue · 3 comments

Goal

Most file uploading/downloading tutoriels on the web limits to public files.

The main goal here is to handle both public and private files, with the advanced permission system of Vulcan:

  • ability to share a link to the file, that will only be usable by authorized people only

Which translates from the app point of view:

  • ability to check ownership of a file, based on a document in the database representing file permissions, before we deliver it

Basically it should be easy to create a datatable of files, exactly like we do with other types of documents on Vulcan. The link to the file acts exactly as the unique _id of a document or as a slug, except that we can return the raw data instead of JSON or a graphql response.

Ideas

Possible solution:

  • Connections to cloud based service?
  • Using on-premise 3rd party tools?

As a starting point, here are the features I've developed myself so far for my own usage:

  • take any URL, and upload its contents (in my case a PDF) to S3
  • take an S3 file URL, authenticate, and return a stream (for giving access to secure files)

We would need too

  • The front end file upload system
  • The function to add the files to a collection

Next Cloud has proven quite powerful and has the advantage of being self hostable.