Hi all,

I'm trying to set up a Pantheon-hosted Drupal 8 site where clients can log in and be given a signed URL (or similar) to download a large dataset (>1GB) that is associated with a particular bit of content. The dataset will be hosted on Google Cloud Storage or similar. Access control is important, this dataset needs to be private.

A nice feature would be if my content creators could upload the dataset through the same form they use to create the Drupal content, but I recognise this requires CORS etc. to bypass the file size limitations of PHP/Drupal/Pantheon.

I'm torn between some possible solutions and I'm hoping someone has the experience to guide me to the best one. To serve these files I could:

  1. Have my content creators upload the file to Google Cloud Storage themselves, then write a custom module that lets them input object location and renders a signed URL for clients using this process.
  2. Use the modules S3 File System CORS Upload and S3 File System, but I'm concerned about access control, it seems like one user could guess/brute force the URL for another user's dataset. Example.
  3. Flysystem. But I'm even more confused about how Flysystem works and if it can do what I want, the documentation is very scarce.

I'm leaning towards option one at the moment, but before I begin does anyone have any modules I've missed, or know of any technical hurdles I'm overlooking or obvious solutions I've missed? Thanks in advance.