@dan-online/bunnycdnjs
v1.0.8
Published
Tool for BunnyCDN
Downloads
35
Readme
BunnyJS / BunnyCDNJS
is a unoficial NodeJS client for the BunnyCDN API.
Why @dan-online/bunnycdnjs? I had to add the "Uk" location
Why ?
I always use BunnyCDN in my projects, but there's no oficial library for NodeJS, so i decide to make my own.
Installation
With NPM:
npm i bunnycdnjs
yarn soon, sorry
Get started
Using Require:
const { BunnyStorageClient } = require("bunnycdnjs");
Using Import:
import { BunnyStorageClient } from "bunnycdnjs";
Create Storage
You can find your apiKey at: FTP & API Access > Password
const CDN = new BunnyStorageClient({
apiKey: process.env.BUNNY_STORAGE_PASSWORD_KEY, // eg: "515qdnsd-3ghc-1c43-bd339jff9ga7-cd89-4b6f"
storageZoneName: "myassets",
cdnLocation: "New York",
});
List Usage
async function ListMyStorageRootFolder() {
let RootFiles = await CDN.List(".");
if (RootFiles.Data) {
for (const File of RootFiles.Data) {
console.log(`Name: ${File.ObjectName} Size: ${File.Length}`);
}
} else if (RootFiles.Error) {
console.log(RootFiles.Error);
}
}
ListMyStorageRootFolder();
Download Usage
async function SaveMyAssetsLocally() {
let AssetsFiles = await CDN.List("Assets");
if (AssetsFiles.Data) {
for (const File of AssetsFiles.Data) {
await CDN.Download("Assets", File.ObjectName);
// Saved at: downloads/Assets
// OR
await CDN.Download("Assets", File.ObjectName, "media", File.ObjectName);
// Saved at: media
}
} else if (AssetsFiles.Error) {
console.log(AssetsFiles.Error);
}
}
SaveMyAssetsLocally();
Upload Usage
async function SaveMyAssetsRemotelly() {
let LocalAssetsFiles = fs.readdirSync("LocalAssets");
for (const FileName of LocalAssetsFiles) {
let content = fs.createReadStream("LocalAssets/" + FileName);
let uploadResult = await CDN.Upload("Assets", FileName, content);
if (uploadResult.Error) {
console.log(FileName, "upload failed");
}
}
}
SaveMyAssetsRemotelly();
Delete Usage
async function ClearMyRemoteAssetsFolder() {
let AssetsFiles = await CDN.List("Assets");
if (AssetsFiles.Data) {
for (const File of AssetsFiles.Data) {
let deleteResult = await CDN.Delete("Assets", File.ObjectName);
if (deleteResult.Error) {
console.log("delete", File.ObjectName, "failed");
}
}
} else if (AssetsFiles.Error) {
console.log(AssetsFiles.Error);
}
}
ClearMyRemoteAssetsFolder();