s3st
Version:
A command line utility that allows you to stream data from multiple S3 objects directly into your terminal
46 lines (35 loc) • 1.06 kB
JavaScript
const AWS = require('aws-sdk')
const program = require('commander')
const { pipeline } = require('readable-stream')
const createS3stStream = require('./')
const decompress = require('./transformers/decompress')
const pkg = require('../package.json')
program
.version(pkg.version, '-v, --version')
.option('-D, --do-not-decompress', 'Do not try to decompress files automatically (gzip, deflate, brotli)')
.usage('[options] <bucket> [prefix]')
.parse(process.argv)
const [bucket, prefix] = program.args
if (!bucket) {
console.error('Error: expected "bucket" argument. Run with --help for more details on usage')
process.exit(1)
}
const transform = program.doNotDecompress ? undefined : decompress
const s3 = new AWS.S3()
const stream = createS3stStream(s3, bucket, prefix || '', transform)
const handleErr = (err) => {
console.error('Error:', err.message)
process.exit(1)
}
stream.on('error', handleErr)
pipeline(
stream,
process.stdout,
(err) => {
if (err) {
handleErr(err)
}
}
)