ES9+ compatible Storj bindings for Node, for use with Tardigrade.
npm install uplink-js

ES9+ compatible Storj bindings for Node, for use with Tardigrade.
`` javascript
const uplink = require('node-storj');
(async () => {
// parse access
const access = await uplink.parseAccess('your-access-here');
// open project
const project = await access.openProject();
// initiate file download
const download = await project.downloadObject('my-bucket', 'file.txt');
// read chunks to program output
for await (const chunk of download) {
process.stdout.write(chunk);˜
}
})();
`
` javascript
// initiate file download
const download = await project.downloadObject('my-bucket', 'file.txt');
download
.stream()
.pipe(process.stdout);
`
#### Promise<Download> project.downloadObject(bucket, path)
Returns a Promise which resolves to a Download object.
` javascript`
const download = await project.downloadObject('my-bucket', 'my-path');
#### Promise<Upload> project.uploadObject(bucket, path)
Returns a Promise which resolves to an Upload object.
` javascript`
const upload = await project.uploadObject('my-bucket', 'my-path');
#### Async Iterable <StorjObject> project.listObjects(bucket, options)
Iterates through all objects in a bucket.
#### Promise project.deleteObject(bucket, path)
Delete an object.
##### options
###### prefix
Specifies from which prefix to list files.
type: string
default: '/'
###### recursive
type: bool
default: false
`` javascript`
for await (const object of project.listObjects('my-bucket')) {
console.log(object.key);
}
Implements asyncIterable which yields Buffers as the download is streamed.
` javascript`
for await (const chunk of download) {
console.log(chunk.toString())
}
#### ReadableStream download.stream()
Returns a ReadableStream compatible with Node.js libraries and frameworks.
` javascript`
download.stream()
.pipe(fs.createWriteStream('hello-world.txt'));
#### Promise<Buffer> download.buffer()
Returns a Promise that resolves to a Buffer containing the entire download.
` javascript
const buf = await download.buffer();
console.log(buf.toString())
`
#### Promise upload.iterable(iterable)
Uploads from an iterable that yields buffers.
` javascript
async function* streamData() {
yield Buffer.from('Hello, ');
await new Promise(resolve => setTimeout(resolve, 100);
yield Buffer.from('World!');
}
await upload.iterable(stremData());
`
#### WritableStream upload.stream()
Returns a WritableStream compatible with Node.js libraries and frameworks.
` javascript``
fs.createReadStream('my-file.txt')
.pipe(upload.stream());