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 ' , bucket : ' swooty ' , } , function ( err , res ) { console . log ( ' Done! ' , err , res ) ; } ) ;

Get Progress Updates

var client = b2 . uploadFile ( ' /var/tmp/test.mp4 ' , function ( err , res ) { console . log ( ' Done! ' , err , res ) ; } ) ; client . on ( ' progress ' , function ( progress ) { 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 ) ; } ) ;