S3 based deployments for 4front

Usage no npm install needed!

<script type="module">
  import frontS3Deployments from 'https://cdn.skypack.dev/4front-s3-deployments';



Build Status Test Coverage

S3 based code deployments or the 4front web platform. Used to store uploaded virtual app assets such as JavaScripts, stylesheets, html files, images, and more.

Although static assets can be served via the 4front node.js platform, it is more efficient to use S3 as a web host directly. See the AWS docs on how to configure a bucket for static hosting. As a further optimization you can configure CloudFront (or another CDN) in front of the S3 bucket URL. The htmlprep package dynamically rewrites your relative asset paths to the appropriate absolute path.

For a local installation of the 4front platform, the s3rver provides a mock implementation of S3 that utilizes your local filesystem.


npm install 4front-s3-deployments


var s3Deployments = require('4front-s3-deployments')({
    region: 'us-west-2',
    bucket: '4front-deployments'

You can pass in any valid option accepted by the AWS.config object including region, accessKeyId, secretAccessKey, etc.


// Deploy an individual file
s3Deployments.deployFile(appId, versionId, fileInfo, callback);

// Returns a readable stream
s3Deployments.readFileStream(appId, versionId, filePath);

// Delete version
s3Deployments.deleteVersion(appId, versionId, callback);

// Delete all deployed versions for an app
s3Deployments.deleteAllVersions(appId, callback);

// List all the files for a version
s3Deployments.listFiles(appId, versionId, callback);

// Check if file exists
s3Deployments.fileExists(appId, versionId, filePath, callback);

See the unit tests for example calls of all these functions.

Running Tests

npm test


Licensed under the Apache License, Version 2.0. See the top-level file LICENSE.txt and (http://www.apache.org/licenses/LICENSE-2.0).