@sansitech/pkgcloud
Version:
A provider agnostic cloud library for Node.js
55 lines (42 loc) • 1.67 kB
Markdown
The Amazon provider in pkgcloud supports the following services:
* **Compute** (EC2)
* **Storage** S3 (Simple Storage Service)
For all of the Amazon services, you create a client with the same options:
```Javascript
var client = require('pkgcloud').compute.createClient({
provider: 'amazon',
keyId: 'your-access-key-id', // access key id
key: 'your-secret-key-id', // secret key
region: 'us-west-2' // region
});
```
```Javascript
var client = require('pkgcloud').storage.createClient({
provider: 'amazon',
keyId: 'your-access-key-id', // access key id
key: 'your-secret-key-id', // secret key
region: 'us-west-2' // region
});
```
Whether s3 `multipart-upload` or `putObject` API is used depends on the `partSize` option value and the size of file being uploaded.
Single `putObject` request is made if an object being uploaded is not large enough. if the object size exceeds defined `partSize`, it uses `multipart-upload` API
```Javascript
var readableStream = fs.createReadStream('./path/to/file');
var writableStream = client.upload({
queueSize: 1, // == default value
partSize: 5 * 1024 * 1024, // == default value of 5MB
container: 'web-static',
remote: 'image.jpg'
});
//writableStream.managedUpload === https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3/ManagedUpload.html
// managedUpload object allows you to abort ongoing upload or track file upload progress.
readableStream.pipe(writableStream)
.on('success', function(file) {
console.log(file);
}).on('error', function(err) {
console.log(err);
});
```