uplink-js

0.1.0 • Public • Published

uplink-js

Build Status Coverage Status

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());

Package Sidebar

Install

npm i uplink-js

Weekly Downloads

3

Version

0.1.0

License

Apache-2.0

Unpacked Size

368 kB

Total Files

57

Last publish

Collaborators

  • montyanderson