Deploys a node package into a S3 directory in parallel chunks
CoffeeScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
libs
test
.editorconfig
.gitignore
.travis.yml
README.md
package.json

README.md

Deploy S3

Build Status

Usage

Install with npm:

npm i --save deploy-s3

In your package.json, you must have the following properties defined:

"name": "oms-ui"
"deploy": "myDeployDirectory/"

In a file or in env variables, you must have the credentials for using S3:

{
    "key": "somestring",
    "secret": "somebigstring"
}

In your task runner, create a knox-compatible S3 client and deploy:

S3Deployer = require 'deploy-s3'

# Read your package.json file
pkg = JSON.parse fs.readFileSync './package.json'

# Read your access key and secret key
credentials = JSON.parse fs.readFileSync '/credentials.json'

# Choose your bucket
credentials.bucket = 'vtex-io-us'

# Create a client with your credentials
client = knox.createClient credentials

# Create a new S3Deployer
deployer = new S3Deployer(pkg, client)

doneHandler = -> console.log 'Done'
failHandler = console.error
progressHandler = console.log

# deploy() returns a promise and notifies of each uploaded file
deployer.deploy().then doneHandler, failHandler, progressHandler

This will cause every file under myDeployDirectory/ to be deployed to the vtex-io-us bucket under the oms-ui directory.

If your doneHandler is called, that means your deploy is complete.

Options

S3Deployer accepts a third parameter with options:

dryrun: if upload should be skipped. Defaults to false.
chunk: how many files to upload in parallel. Defaults to 20.
batchTimeout: timeout for entire upload. millis. Defaults to 1000 * 60 * 5.
fileTimeout: timeout for upload of each file. millis. Defaults to 1000 * 30.