bunnycdnjs
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

BunnyJS / BunnyCDNJS

is a unoficial NodeJS client for the BunnyCDN API.

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();

Readme

Keywords

Package Sidebar

Install

npm i bunnycdnjs

Weekly Downloads

43

Version

1.0.6

License

ISC

Unpacked Size

53.2 kB

Total Files

22

Last publish

Collaborators

  • ikaiodev