Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
backblaze-b2
Advanced tools
This library uses promises, so all actions on a B2
instance return a promise in the following pattern
b2.instanceFunction(arg1, arg2).then(
successFn(response) { ... },
errorFn(err) { ... }
);
See the CHANGELOG for a history of updates.
Contributions and questions are welcome. If you are looking for something to help with, please have a look at the ISSUES or add an issue if there is something you would like to see or fix.
Make sure you use the .editorconfig
in your IDE/editor when writing code.
Pull Requests should include:
If you are adding tests, add these to /test/unit
. Make sure the test is named fooTest.js
and
is located in a similar folder to the node module that is being tested.
Always run npm test
before you commit.
For this update, we've switched the back end HTTP request library from request
to axios
as it has better Promise and progress support built in. However, there are a couple changes that will break your code and ruin your day. Here are the changes:
res
), this data now resides in res.data
.then()
. Because we are no longer using the same promise library, this functionality has been removed. However, progress reporting is still available by passing a callback function into the b2.method()
that you're calling. See the documentation below for details.b2.downloadFileById()
accepted a fileId
parameter as a String or Number. As of 1.0.0, the first parameter is now expected to be a plain Object of arguments.var B2 = require('backblaze-b2');
// All functions on the b2 instance return the response from the B2 API in the success callback
// i.e. b2.foo(...).then(function(b2JsonResponse) {})
// create b2 object instance
var b2 = new B2({
accountId: 'accountId',
applicationKey: 'applicationKey'
});
// authorize with provided credentials
b2.authorize(); // returns promise
// create bucket
b2.createBucket(
bucketName,
bucketType // one of `allPublic`, `allPrivate`
); // returns promise
// delete bucket
b2.deleteBucket(bucketId); // returns promise
// list buckets
b2.listBuckets(); // returns promise
// update bucket2
b2.updateBucket(bucketId, bucketType); // returns promise
// get upload url
b2.getUploadUrl(bucketId); // returns promise
// upload file
b2.uploadFile({
uploadUrl: 'uploadUrl',
uploadAuthToken: 'uploadAuthToken',
filename: 'filename',
mime: '', // optonal mime type, will default to 'b2/x-auto' if not provided
data: 'data' // this is expecting a Buffer not an encoded string,
info: {
// optional info headers, prepended with X-Bz-Info- when sent, throws error if more than 10 keys set
// valid characters should be a-z, A-Z and '-', all other characters will cause an error to be thrown
key1: value
key2: value
},
onUploadProgress: function(event) || null // progress monitoring
}); // returns promise
// list file names
b2.listFileNames({
bucketId: 'bucketId',
startFileName: 'startFileName',
maxFileCount: 100,
delimiter: '',
prefix: ''
}); // returns promise
// list file versions
b2.listFileVersions({
bucketId: 'bucketId',
startFileName: 'startFileName',
maxFileCount: 100
}); // returns promise
// hide file
b2.hideFile({
bucketId: 'bucketId',
fileName: 'fileName'
}); // returns promise
// get file info
b2.getFileInfo(fileId); // returns promise
// download file by name
b2.downloadFileByName({
bucketName: 'bucketName',
fileName: 'fileName',
onDownloadProgress: function(event) || null // progress monitoring
}); // returns promise
// download file by fileId
b2.downloadFileById({
fileId: 'fileId',
onDownloadProgress: function(event) || null // progress monitoring
}); // returns promise
// delete file version
b2.deleteFileVersion({
fileId: 'fileId',
fileName: 'fileName'
}); // returns promise
// start large file
b2.startLargeFile({
bucketId: 'bucketId',
fileName: 'fileName'
}) // returns promise
// get upload part url
b2.getUploadPartUrl({
fileId: 'fileId'
}) // returns promise
// get upload part
b2.uploadPart({
partNumber: 'partNumber', // A number from 1 to 10000
uploadUrl: 'uploadUrl',
uploadAuthToken: 'uploadAuthToken', // comes from getUploadPartUrl();
data: Buffer // this is expecting a Buffer not an encoded string,
onUploadProgress: function(event) || null // progress monitoring
}) // returns promise
// finish large file
b2.finishLargeFile({
fileId: 'fileId',
partSha1Array: [partSha1Array] // array of sha1 for each part
}) // returns promise
// cancel large file
b2.cancelLargeFile({
fileId: 'fileId'
}) // returns promise
FAQs
Node.js Library for the Backblaze B2 Storage Service
The npm package backblaze-b2 receives a total of 2,150 weekly downloads. As such, backblaze-b2 popularity was classified as popular.
We found that backblaze-b2 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.