Observed since 20 Oct, 21:00 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
6xs
Simple Storage Service Static Site Sync
6xs means Simple Storage Service Static Site Sync.
It takes your /public directory (or however you call it) and pushes its
contents (optionally matching with node-glob) into a selected S3 bucket.
It also can:
This usage example presents all available configuration options:
var sync = require('6xs');
var path = require('path');
sync({
// defaults to: process.cwd() + '/public'
base: path.join(__dirname, 'public'),
// defaults to: '**'
patterns: ['*.html', 'font/*'],
// defaults to noop
logger: function () {
return console.log.apply(console, arguments);
},
// custom mappings between file extension and content type
// if not provided, libmagic is used for detection
// values below are used by default:
contentTypeMap: {
html: 'text/html',
css: 'text/css',
js: 'application/javascript',
json: 'application/json'
},
aws: {
// have to be provided:
access_key_id: 'abcdef...',
secret_access_key: 'xyz987...',
// defaults:
ssl: true,
retries: 3,
concurrency: 10
},
s3: {
// have to be provided:
region: 'eu-west-1',
bucket: 'your-bucket-name',
// defaults to false:
remove_remote_surplus: true
// defaults:
max_age: 365,
s_max_age: 1,
},
// if the distribution id is provided,
// its content will be invalidated after the upload
cf_distribution_id: 'qwerty...'
}, function (err, uploadedFiles) {
// callback is optional
// if upload was successful, err will be null
// uploadedFiles is an array of paths
});
Usage
$ 6xs <settings/options>
This will upload the current working directory to the specified S3 bucket.
Required settings
-i, --id AWS Access Key ID
-s, --secret AWS Secret Access Key
-b, --bucket AWS S3 Bucket name
-r, --region AWS region
Options
-p, --patterns Glob patterns of the files to upload
default: **
e.g. *.html
e.g. *.html,fonts/*
-ma, --max-age Cache-Control max-age header, in days
default: 365
-sa, --s-max-age Cache-Control s-maxage header, in days
default: 1
--retries Number of retries
Default: 3
--concurrency Number of concurrent uploads
Default: 10
--remove-surplus Remove remote files that are not
found in your local directory
--no-ssl Don't use SSL
-cf, --cloudfront The distribution ID to invalidate
Examples
$ 6xs -i I2B -s KPAvL4GR -b my-s3-site.gov -r us-west-2 --remove-surplus
Uploading: ...
Pull requests and/or issue reports are warmly welcomed!
$ npm run test
$ npm run coverage
Travis build won't run integration tests if your PR originates in a fork.
You'll need to provide 4 environmental variables to run integration tests locally. The user identified by the access key has to have an appropriate allowing policy for the S3 bucket assigned.
$ AWS_ACCESS_KEY_ID=key-id \
AWS_SECRET_ACCESS_KEY=secret \
S3_REGION=your-region \
S3_BUCKET=your-test-bucket \
npm run test-integration
If you understand implications you can copy integration-test.sh.dist and
adjust it to your needs.
MIT
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
asyncEnvironment{
"local_name": "async",
"alias": false,
"peer_metadata": null
} | 1.5.0 | runtime |
aws-sdkEnvironment{
"local_name": "aws-sdk",
"alias": false,
"peer_metadata": null
} | 2.2.26 | runtime |
globEnvironment{
"local_name": "glob",
"alias": false,
"peer_metadata": null
} | 6.0.1 | runtime |
lodashEnvironment{
"local_name": "lodash",
"alias": false,
"peer_metadata": null
} | 3.10.1 | runtime |
mmmagicEnvironment{
"local_name": "mmmagic",
"alias": false,
"peer_metadata": null
} | 0.4.1 | runtime |
codecov.ioEnvironment{
"local_name": "codecov.io",
"alias": false,
"peer_metadata": null
} | 0.1.6 | development |
faucetEnvironment{
"local_name": "faucet",
"alias": false,
"peer_metadata": null
} | 0.0.1 | development |
istanbulEnvironment{
"local_name": "istanbul",
"alias": false,
"peer_metadata": null
} | 0.4.1 | development |
jshintEnvironment{
"local_name": "jshint",
"alias": false,
"peer_metadata": null
} | 2.8.0 | development |
proxyquireEnvironment{
"local_name": "proxyquire",
"alias": false,
"peer_metadata": null
} | 1.7.3 | development |
requestEnvironment{
"local_name": "request",
"alias": false,
"peer_metadata": null
} | 2.67.0 | development |
sinonEnvironment{
"local_name": "sinon",
"alias": false,
"peer_metadata": null
} | 1.17.2 | development |
tapeEnvironment{
"local_name": "tape",
"alias": false,
"peer_metadata": null
} | 4.2.2 | development |
Source distribution
{
"shasum": "37b365df97161ecda2283c08437cdc0990d259af",
"tarball": "https://registry.npmjs.org/6xs/-/6xs-0.1.1.tgz",
"integrity": "sha512-TnbkMyKiGDidYC0KTHS9y4KkQW2/azZH3LtHxMQswZlyBamjn68xtEaIjYr1q2spEbH/WpDFT98/f+IpE42g8Q==",
"signatures": [
{
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
"sig": "MEUCIB4QqM3VYwXADRXICelcuL916a0z656v8a5NcOcs6XPEAiEAmmpbLiecVE3kTMqYA4oAXB/JmV0bKccvJBOLDC0exVk="
}
]
}Observed since 20 Oct, 21:00 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:ede56546d5a3b0b5da3543faccdf72e373697765b5955c2e60a6719879102b52