NodeJS bash utility for deploying files to Amazon S3
s3-deploy './dist/**' --cwd './dist/' --region AWS_REGION --bucket SOME_BUCKET_NAME
Deploys files found by the
./dist/** glob patten to S3. Change
AWS_REGION with the AWS region of your bucket and
SOME_BUCKET_NAME with the name of your bucket where file files should end up.
--gzip will gzip all files before sending them.
Use this parameter to specify the
Cache-Control: max-age=X header, where X is the number of seconds a given item will be kept in the cache for. By default this value is undefined.
When a page is refreshed, which is an extremely common social media scenario, elements that were previously marked immutable with an HTTP response header do not have to be revalidated with the server. It sets the
Cache-Control: immutable header - using-immutable-caching-to-speed-up-the-web
You can also specify the
ETag: X header, where X is either user-defined value for this header, or MD5 of the content. To automatically fill this header with MD5 hash of the file, just use
--etag parameter without any value. Internally the tool will generate MD5 hash of the content and will set it as the ETag header value. By default this parameter is undefined.
You can also specify the
signatureVersion that should be used by S3 client. Current allowed values are the same as in the constructor of the S3 JS SDK Client. In the time of writing those docs those values were
Use this parameter to specify a file prefix for all your destination files. For example, if you wanted to deploy a versioned history of your project to S3 whenever publishing to npm, you could use
--filePrefix $npm_package_version in a script in your project's package.json file.
You can specify a specific AWS profile to use to connect to S3 (defaults to
default). More information on how to setup AWS profiles is available in the AWS docs.
Use this parameter to specify that objects being uploaded will be stored with private ACL (Owner gets FULL_CONTROL. No one else has access rights). By default, 'public-read' ACL is set. More information on the canned-acl is available in the AWS docs
Enables to set the correct content type header when files has no extension. For example, when the s3 bucket is used for webhosting and there is need to access paths like
/about instead of
/about.html so its possible to upload file named
about and set
Removes files in S3, that are not available in the local copy of the directory. Useful to cleanup files that should no longer reside in the remote version.
AWS credentials can be provided via environment variables, or in the
~/.aws/credentials file. More details here:
http://docs.aws.amazon.com/cli/latest/topic/config-vars.html. Please make sure to define a default in your AWS credentials, this will help prevent a
Missing Credentials error during deployment.
npm run release
Runs eslint validation, runs all unit tests.
Invokes all unit tests in the project.
npm run coverage
Generates unit test coverage report.
npm run lint
Invokes eslint validation based on rules defined in the
s3-deployis used from windows machine.
aws-sdkpackage version to
2.3.19, because of: https://github.com/aws/aws-sdk-js/issues/1035
signatureVersionin S3 client,
--etagargument is used.
babelto be a dev-dependency.
--gzip. When this is added, all files will be gzipped before sending them to Amazon S3.
cryptoimport in the utils.