Server-side actions

Demo

Editor and live page, with the credentials "username" and "password".

High level overview

As of May 9, 2020, this plugin can be used to get a URL to display a private object in S3.

This plugin can be used in conjunction with the API Connector to upload a file to S3, or to return a link for a private file hosted on S3.

Technical details

S3 is often used to store private, sensitive data. To serve files from S3 (or upload files, list files, etc) it is necessary to use an AWS API Access key and a Secret Access Key, which should not be sent to the client's browser.

The API keys should be the keys for an AWS IAM User that has all of the necessary S3 permissions. The easiest way to do this is to give full access to S3 to that user (AmazonS3FullAccess).

Download/return file

Use the Generate S3 GET URL (production plugin) server side workflow action to return a URL that can be used for downloading from S3.

Inputs:

  • S3 File Path: the path where this file will be stored, including the full file name and any folders that the file is inside of. E.g. test-folder/test-subfolder/testfile.wav

  • Bucket: the S3 Bucket where the file should be saved.

  • Region: the AWS region where the file should be saved. If you're not sure, you can leave us-west-1

  • Expiration: number of seconds before the URL expires (can no longer be used).

Outputs:

  • URL: The URL used to download, show or otherwise use this file. Remember that this URL is not permanent - it will expire after a certain amount of time.

  • Log: used for debugging the plugin during development - ignore this.

Upload file

Use the Generate S3 POST URL (production plugin) server side workflow action to return a URL that can be used to upload a file to S3. Then, use the API Connector call Client-side S3 upload (production) to actually upload the file, inputting the values from the "Generate S3 POST URL" action for the authentication to work properly.