An async/await module providing APIs to interact with tarballs on remote storage
MIT License
await-targz is a module working with Promise
and async/await
providing operations to pack, unpack, upload and download tarballs. It uses the pkgcloud API which supports interactions with multiple cloud providers.
npm install await-targz --save
When using this module, the exported class accepts two arguments.
cdnup
The configurations for setup the cdnup instance. We use cdnup to easily consume the pkgcloud API.log
The logger for log out information and error. Everyone loves logs! diagnostics is set to default if no specific logger object provided.An example of how to use it could be:
const Tar = require('await-targz');
const tar = new Tar({
cdnup: {
bucket: 'some_mock_bucket',
pkgcloud: {
provider: 'amazon',
endpoint: 'some_end_point',
keyId: 'this_is_a_mock_key_id',
key: 'this_is_a_mock_key',
forcePathBucket: true
}
},
log: your_logger_obj // if no logger provided, it will default to `diagnostics`
});
It provides the following API methods.
You can use this method to pack a tarball by providing the source path and target path.
tar.pack('path/to/source/some-component', 'path/to/target/some-component.tar');
In reverse, this method is to unpack a tarball to a provided directory.
tar.unpack('path/to/tarball/some-component.tar', 'path/to/dir/some-component');
Once when the pkgcloud API is setup correctly, you can upload the tarball to the provided endpoint, e.g. Ceph object center.
tar.upload('some-component-1a2b3c4.tgz', 'path/to/tarball/some-component.tar');
Once when you finish uploading, you can check through the corresponding cloud client UI/console to see if the tarball with name e.g. some-component-1a2b3c4.tgz
is there or not.
You can download an existing tarball to a given directory using:
tar.download('some-component-1a2b3c4.tgz', { tarball: 'path/to/save/tarball/some-component.tar' });
You can remove an existing tarball from the remote storage by using:
tar.remove('some-component-1a2b3c4.tgz');
You can check if a file/tarball exists or not in remote storage by using:
tar.exists('some-component-1a2b3c4.tgz');
npm test