Make a thenable wrapper for tar functionalities
npm install await-targzawait-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.
``sh`
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:
`js
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.
`js`
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.
`js`
tar.unpack('path/to/tarball/some-component.tar', 'path/to/dir/some-component');$3
Once when the pkgcloud API is setup correctly, you can upload the tarball to the provided endpoint, e.g. Ceph object center.
`js`
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:
`js`
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:
`js`
tar.remove('some-component-1a2b3c4.tgz');
You can check if a file/tarball exists or not in remote storage by using:
`js`
tar.exists('some-component-1a2b3c4.tgz');
`js``
npm test