
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
node-bunny-storage
Advanced tools
This is a Node.js library that provides a simple and convenient way to interact with BunnyCDN Storage.
It allows to download and upload files and complete folders, and you can download and multiple files in parallel. There is also a built-in retry for failed request. You can exclude certain file types from being uploaded or downloaded when dealing with folders. The log level is also configurable.
npm install --save node-bunny-storage
First, import the package and initialize it with your access key and storage zone name:
import BunnyCDNStorage from 'node-bunny-storage';
const bunny = new BunnyCDNStorage({accessKey: 'your-access-key', storageZoneName: 'your-storage-zone-name'});
// you can also set the concurrency, the retryCount and the log level
const bunny = new BunnyCDNStorage({
accessKey: 'your-access-key',
storageZoneName: 'your-storage-zone-name',
concurrency: 10,
retryCount: 1,
logLevel: 'silent'
});
To list files from a remote directory:
// list all files from root folder recursively
await bunny.listFiles({
remoteDirectory: '/',
recursive: true,
excludedFileTypes: ['.md'], // exclude .md files
fileFilter: (filepath) => {
// filter out the first file from being listed
return !filepath.includes(fileName)
}});
To download a file from a remote directory:
// get the remote file path using the getCompleteRemotePathFromFile function
const remoteFileDirectory = bunny.getRemotePathFromFileWithoutStorageZone(files[0]);
const fileName = files[0].ObjectName;
// download the first file from the root folder
const downloadedFilePath = await bunny.downloadFile({
remoteDirectory: remoteFileDirectory, fileName: fileName, localDirectory: './testDownload/singleFileTestDownload'
})
To upload a file to a remote directory:
// upload the file to /testRemoteSingleFileUpload folder
await bunny.uploadFile({
localFilePath: './testDownload/singleFileTestDownload/' + fileName,
remoteDirectory: 'testRemoteSingleFileUpload'
});
To delete a file or folder from a remote directory:
// delete the first file from the root folder
await bunny.delete({remoteDirectory: remoteFileDirectory, fileName: fileName});
To upload a complete local folder:
// upload all files from the ./testDownload folder to the remote /testRemoteFolderUpload folder, except .html files
await bunny.uploadFolder({
localDirectory: './testDownload',
remoteDirectory: 'testRemoteFolderUpload',
recursive: true,
excludedFileTypes: ['.html'],
fileFilter: (filepath) => {
// filter out first file from being uploaded
return !filepath.includes(fileName)
}
});
To download a complete remote folder:
// download all files from the remote folder including subdirectories to the ./testDownload/downloadFolderTest folder, except .png and .jpg files
const downloadedFilesPaths = await bunny.downloadFolder({
remoteDirectory: '/',
localDirectory: './testDownload/downloadFolderTest',
recursive: true,
excludedFileTypes: ['.png', '.jpg'],
fileFilter: (filepath) => {
// filter out the uploaded file from being downloaded
return !filepath.includes('testRemoteFolderUpload')
}
});
For a full example, look at the test.js script.
GNU General Public License v3.0
FAQs
A simple wrapper for the bunnyCDN storage api
The npm package node-bunny-storage receives a total of 3 weekly downloads. As such, node-bunny-storage popularity was classified as not popular.
We found that node-bunny-storage demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.