0.1.0 • Published 4 years ago

uplink-js v0.1.0

Weekly downloads
3
License
Apache-2.0
Repository
github
Last release
4 years ago

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