uplink-js
v0.1.0
Published
ES9+ compatible Storj bindings for Node, for use with Tardigrade.
Downloads
88
Maintainers
Readme
uplink-js
ES9+ compatible Storj bindings for Node, for use with Tardigrade.
Usage
Example
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);˜
}
})();
Example with streams
// initiate file download
const download = await project.downloadObject('my-bucket', 'file.txt');
download
.stream()
.pipe(process.stdout);
API
Project
Promise
<Download
> project.downloadObject(bucket, path)
Returns a Promise which resolves to a Download
object.
const download = await project.downloadObject('my-bucket', 'my-path');
Promise
<Upload
> project.uploadObject(bucket, path)
Returns a Promise which resolves to an Upload
object.
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`
for await (const object of project.listObjects('my-bucket')) {
console.log(object.key);
}
Download
Implements asyncIterable which yields Buffers as the download is streamed.
for await (const chunk of download) {
console.log(chunk.toString())
}
ReadableStream
download.stream()
Returns a ReadableStream compatible with Node.js libraries and frameworks.
download.stream()
.pipe(fs.createWriteStream('hello-world.txt'));
Promise
<Buffer
> download.buffer()
Returns a Promise that resolves to a Buffer containing the entire download.
const buf = await download.buffer();
console.log(buf.toString())
Upload
Promise
upload.iterable(iterable)
Uploads from an iterable that yields buffers.
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.
fs.createReadStream('my-file.txt')
.pipe(upload.stream());