Skip to content

Latest commit

History

History

nexrender-action-upload

Folders and files

NameName
Last commit message
Last commit date

parent directory

..

Action: Upload

Upload video to an external storage provider ie. Amazon S3.

Installation

npm i @nexrender/action-upload -g

Usage

When creating your render job provide this module as one of the postrender actions:

// job.json
{
    "actions": {
        "postrender": [
            {
                "module": "@nexrender/action-upload",
                "input": "output.mp4",
                "provider": "s3",
                "params": {
                    "region": "us-east-1",
                    "bucket": "name-of-your-bucket",
                    "key": "folder/output.mp4",
                    "acl": "public-read"
                }
            }
        ]
    }
}

Information

  • input optional argument, path of the file you want to upload, can be either relative or absulte path. If skipped, defaults to current job output video file.
  • provider required argument, object containing the name of the provider
  • params required argument, object containing parameters for the upload (provider-specific)

Providers

s3

Refer to AWS SDK Documentation for information on setting credentials.

{
    'region': 'us-east-1',
    'bucket': 'name-of-your-bucket',
    'key': 'folder/output.mp4',
    'acl': 'public-read'
}
  • region required argument, the S3 bucket region
  • bucket required argument, the S3 bucket
  • key required argument, the object key
  • acl required argument, the ACL

ftp

Refer to mscdex/node-ftp for information regarding params and usage.

Basic params info:

  • host - string - The hostname or IP address of the FTP server. Default: 'localhost'
  • port - integer - The port of the FTP server. Default: 21
  • user - string - Username for authentication. Default: 'anonymous'
  • password - string - Password for authentication. Default: 'anonymous@'

Example:

{
    'host': 'ftp.example.com',
    'port': 21,
    'user': 'myuser',
    'password': 'mypassword123',
    'output': '/var/temp/myfile.mp4'
}

gs

You most likely need to authenticate to interact with a GCS bucket. This is done using Application Default Credentials. Refer to the Google Cloud Documentation for more information on authentication.

The upload params are given as part of the action:

  • bucket (required)
  • item (required)
  • contentType (optional)
  • cacheControl (optional)

Example:

// job.json
{
    "actions": {
        "postrender": [
            {
                "module": "@nexrender/action-upload",
                "input": "output.mp4",
                "provider": "gs",
                "params": {
                    "bucket": "name-of-your-bucket",
                    "item": "folder/uploaded.mp4",
                    "contentType": "video/mp4",
                    "cacheControl": "public, max-age=3600"
                }
            }
        ]
    }
}