A CLI tool for uploading files to Amazon S3 buckets using Node.js.
All files are uploaded to a history/<hash>
folder and then copied to the bucket's root.
Optionally, provide a CloudFront distribution ID to trigger a complete cache invalidation.
Install the package globally using npm.
npm install -g s3-deployer
Copy the included config.example.json
to your project as config.json
and edit the file.
Access and secret access keys given by AWS.
Bucket name.
Optional. A CloudFront distribution ID.
The contents of this path will be uploaded to the S3 bucket. E.g. dist
or build
.
Optional. An array of directories to be ignored. E.g. .git
or node_modules
.
Optional. An array of files to ignore during the pruning process.
Simply run the script from a terminal inside your project.
deploy
By default it will look for a config.json
file but you can pass a different one by using --config
or -c
.
deploy --config my-config.json
Pass --force
or -f
to skip the git status
check.
deploy --force
When using --force
keep in mind that the contents of history/<hash>
might not match the contents of the actual commit.
You can deploy an already uploaded version by passing --commit
with a given hash.
deploy --commit c72aacd
Copyright 2018 Camilo Rivera
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.