Socket
Socket
Sign inDemoInstall

backblaze-b2

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

backblaze-b2 - npm Package Compare versions

Comparing version 0.9.3 to 0.9.4

7

CHANGELOG.md

@@ -0,1 +1,8 @@

### v0.9.4 (December 3, 2015) - The all the things API release
Features
- Download file by fileId
- Delete file version
### v0.9.3 (December 3, 2015) - The get on the file escalator release

@@ -2,0 +9,0 @@

3

conf.js
module.exports = {
API_AUTHORIZE__URL: 'https://api.backblaze.com/b2api/v1/b2_authorize_account'
API_AUTHORIZE__URL: 'https://api.backblaze.com/b2api/v1/b2_authorize_account',
API_VERSION_URL: '/b2api/v1'
};
var utils = require('./../utils');
var request = require('../request');
var conf = require('../../conf');

@@ -95,3 +96,3 @@ exports.TYPES = {

function getApiUrl(b2) {
return b2.apiUrl + '/b2api/v1';
return b2.apiUrl + conf.API_VERSION_URL;
}

@@ -6,2 +6,3 @@ var sha1 = require('node-sha1');

var request = require('../request');
var conf = require('../../conf');

@@ -109,5 +110,36 @@ exports.uploadFile = function(b2, args) {

//B2.prototype.delete_file_version = function() {};
//B2.prototype.download_file_by_id = function() {};
exports.downloadFileById = function(b2, fileId) {
var options = {
url: getDownloadFileByIdUrl(b2),
qs: {
fileId: fileId
},
headers: utils.getAuthHeaderObjectWithToken(b2)
};
var deferred = q.defer();
var requestInstance = request.getInstance();
requestInstance(options, utils.getProcessFileSuccess(deferred, processDownloadResponse));
return deferred.promise;
};
exports.deleteFileVersion = function(b2, args) {
var fileId = args.fileId;
var fileName = args.fileName;
var options = {
url: getDeleteFileVersionUrl(b2),
method: 'POST',
headers: utils.getAuthHeaderObjectWithToken(b2),
body: JSON.stringify({
fileId: fileId,
fileName: fileName
})
};
return request.sendRequest(options);
};
function processDownloadResponse(response, body) {

@@ -153,4 +185,12 @@ var headers = [

function getDownloadFileByIdUrl(b2) {
return b2.downloadUrl + conf.API_VERSION_URL + '/b2_download_file_by_id';
}
function getDeleteFileVersionUrl(b2) {
return getApiUrl(b2) + '/b2_delete_file_version';
}
function getApiUrl(b2) {
return b2.apiUrl + '/b2api/v1';
return b2.apiUrl + conf.API_VERSION_URL;
}

@@ -80,7 +80,13 @@ var actions = require('./actions');

/*
B2.prototype.delete_file_version = function() {};
B2.prototype.download_file_by_id = function() {};
*/
B2.prototype.downloadFileById = function(fileId) {
return actions.file.downloadFileById(this, fileId);
};
// args:
// - fileId
// - fileName
B2.prototype.deleteFileVersion = function(args) {
return actions.file.deleteFileVersion(this, args);
};
module.exports = B2;
{
"name": "backblaze-b2",
"version": "0.9.3",
"version": "0.9.4",
"description": "Node.js Library for the Backblaze B2 Storage Service",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -14,7 +14,5 @@ ### Backblaze B2 Node.js Library

At this time not all API features of Backblaze B2 are yet implemented.
All B2 API's have been implemented. See below for usage.
Once all API features are implemented, version will be updated to 1.0.x
### Usage

@@ -84,1 +82,11 @@

}); // returns promise
// download file by fileId
b2.downloadFileById(fileId); // returns promise
// delete file version
b2.deleteFileVersion({
fileId: 'fileId',
fileName: 'fileName'
}); // returns promise

@@ -54,15 +54,25 @@ var fs = require('fs');

b2.downloadFileByName({
bucketName: 'thngs-foo',
fileName: 'thngs-circle.png'
}).then(
function(data) {
console.log('success', data);
//fs.writeFileSync('/Users/yakov/Desktop/test-thngs-circle.png', data);
},
function(error) {
console.log('err', error);
}
);
b2.deleteFileVersion({
fileId: '4_zf15e07a37be0372b56110f1e_f1133cc984bf18527_d20151123_m085512_c001_v0001012_t0021',
fileName: 'xyc.zip'
})
.then(
function(response) {
console.log('success', response);
},
function(error) {
console.log('error', error);
}
);
//b2.downloadFileById('4_zf15e07a37be0372b56110f1e_f113a14c4db722abc_d20151123_m092204_c001_v0001005_t0005').then(
// function(data) {
// console.log('success', data);
// //fs.writeFileSync('/Users/yakov/Desktop/test-thngs-circle.png', data);
// },
// function(error) {
// console.log('err', error);
// }
//);
//b2.getFileInfo('4_zf15e07a37be0372b56110f1e_f1133cc984bf18527_d20151123_m085512_c001_v0001012_t0021')

@@ -69,0 +79,0 @@ // .then(

@@ -361,2 +361,117 @@ var expect = require('expect.js');

describe('downloadFileById', function() {
describe('with good response', function() {
beforeEach(function(done) {
response = {
headers: {
'x-bz-file-id': 'fileIdAbcd1234',
'x-bz-file-name': 'unicorns-download.png',
'x-bz-content-sha1': 'file_hash'
},
statusCode: 200
};
bogusRequestModule = function(options, cb) {
requestOptions = options;
cb(errorMessage, response, 'file contents');
};
request.setup(bogusRequestModule);
file.downloadFileById(b2, 'abcd1234').then(function(response) {
actualResponse = response;
done();
});
});
it('should set correct options and resolve with good response', function() {
expect(requestOptions).to.eql({
url: 'https://download/b2api/v1/b2_download_file_by_id',
qs: {
fileId: 'abcd1234'
},
headers: {
Authorization: 'unicorns and rainbows'
}
});
expect(actualResponse).to.eql({
data: 'file contents',
fileId: 'fileIdAbcd1234',
filename: 'unicorns-download.png',
sha1: 'file_hash'
});
});
});
describe('with error response', function() {
beforeEach(function(done) {
errorMessage = 'Something went wrong';
file.downloadFileById(b2, '1234abcd').then(null, function(error) {
actualResponse = error;
done();
});
});
it('Should respond with an error and reject promise', function() {
expect(actualResponse).to.be(errorMessage);
});
});
});
describe('deleteFileVersion', function() {
beforeEach(function() {
options = {
fileId: 'abcd1234',
fileName: 'foo.txt'
};
});
describe('with good response', function() {
beforeEach(function(done) {
response = { foo: '1234' };
file.deleteFileVersion(b2, options).then(function(response) {
actualResponse = response;
done();
});
});
it('should set correct options and resolve with good response', function() {
expect(requestOptions).to.eql({
url: 'https://foo/b2api/v1/b2_delete_file_version',
method: 'POST',
headers: {
Authorization: 'unicorns and rainbows'
},
body: '{"fileId":"abcd1234","fileName":"foo.txt"}'
});
expect(actualResponse).to.eql(response);
});
});
describe('with error response', function() {
beforeEach(function(done) {
errorMessage = 'Something went wrong';
file.deleteFileVersion(b2, options).then(null, function(error) {
actualResponse = error;
done();
});
});
it('Should respond with an error and reject promise', function() {
expect(actualResponse).to.be(errorMessage);
});
});
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc