Skip to content

The absolute simplest way possible to make Backblaze B2 API calls.

Notifications You must be signed in to change notification settings

backuprepos/easy-backblaze

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm install --save easy-backblaze

Easy Backblaze is a powerful, yet simple and lightweight re-imagination of the Backblaze API. Upload a file in one call, just like in S3! Because of the depth and complexity of simply uploading, for now, this package will focus only on uploading a file. It will retry after encountering 429 (Too Many Requests), 408 (Request Timeout), 500 (Internal Error) and 503 (Service Unavailable) errors.

var B2 = require('easy-backblaze');
var b2 = new B2('account_id', 'application_key');

b2.uploadFile('/var/tmp/test.mp4', {
    name: 'swiggity-swooty.mp4', // Optional, renames file
    bucket: 'swooty', // Optional, defaults to first bucket
}, function(err, res) {
    console.log('Done!', err, res);
});

// res = https://f001.backblazeb2.com/file/swooty/swiggity-swooty.mp4

Get Progress Updates

var client = b2.uploadFile('/var/tmp/test.mp4', function(err, res) {
    console.log('Done!', err, res);
});

client.on('progress', function(progress) {
    // Every time 512 KB finish uploading
    console.log('Progress:', progress);
});

AES-256 Encryption

To upload a file and encrypt it, just add a password:

b2.uploadFile('/var/tmp/test.mp4', {
    password: 'ggf96fjo',
    name: 'secretFileName.mp4',
}, function(err, res) {
    console.log('Done!', err, res);
});

To decrypt, download and pipe the stream through any old compatible decipher:

var decipher = crypto.createDecipher('aes-256-ctr', 'ggf96fjo');
var input = fs.createReadStream('test.mp4');
var output = fs.createWriteStream('output.mp4');
input.pipe(decipher).pipe(output);

Additional Options

An additional options argument can be used to specify a default bucket for uploads.

var b2 = new B2('account_id', 'application_key', {bucket: 'swooty'});
b2.uploadFile('/var/tmp/test.mp4', function(err, res) {
    console.log('Done!', err, res);
});

If you appreciate the work that went into this, donate to 15BHA6gPYszTfsbDHUag4nu6WZiQPkDoUL

About

The absolute simplest way possible to make Backblaze B2 API calls.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%