GithubHelp home page GithubHelp logo

jvddavid / cloudflare-images Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 88 KB

A package to use Cloudflare Images API in Node.JS

Home Page: https://www.npmjs.com/package/@jvddavid/cloudflare-images

JavaScript 4.48% TypeScript 95.52%
cloudflare-images nodejs

cloudflare-images's Introduction

Cloudflare Images API

Summary

Install

npm i @jvddavid/cloudflare-images

Auth

import CloudFlareImages from '@jvddavid/cloudflare-images';

const cloudflare = new CloudFlareImages({
  accountId: 'account_id', // mandatory
  token: 'token'
  // OR
  email: 'email',
  key: 'key'
});

Images API

List images

const { success, errors, messages, result } = await cloudflare.listImages({
  page: 1,
  perPage: 1000,
});

// example of result
const result = {
  images: [
    {
      id: "aiofaosu7-13515135-jhsduy8173",
      filename: "demo.jpg",
      meta: { demo: "demo" },
      requireSignedURLs: false,
      uploaded: "2014-01-02T02:20:00.123Z",
      variants: ["..."], // url of variants
    },
  ],
};

List images V2

const { success, errors, messages, result } = await cloudflare.listImagesV2({
  perPage: 1000,
  sortOrder: null,
  continuationToken: null,
});

// example of result
const result = {
  images: [
    {
      id: "aiofaosu7-13515135-jhsduy8173",
      filename: "demo.jpg",
      meta: { demo: "demo" },
      requireSignedURLs: false,
      uploaded: "2014-01-02T02:20:00.123Z",
      variants: ["..."], // url of variants
    },
  ],
  continuation_token: "aispfahoshfao-asfibasi-safusaui",
};

Stats

const { success, errors, messages, result } = await cloudflare.stats();

// example of result
const result = {
  count: {
    allowed: 100000,
    current: 15,
  },
};

Image details

const { success, errors, messages, result } = await cloudflare.imageDetails(
  "image_id"
);

// example of result
const result = {
  id: "aiofaosu7-13515135-jhsduy8173",
  filename: "demo.jpg",
  meta: { demo: "demo" },
  requireSignedURLs: false,
  uploaded: "2014-01-02T02:20:00.123Z",
  variants: ["..."], // url of variants
};

Base image

const { success, errors, messages, result } = await cloudflare.image(
  "image_id"
);

// example of result
const result = "base64image"; // or null

Upload image

const { success, errors, messages, result } = await cloudflare.uploadImage({
  name: "image_name",
  image: "image_base64" /* string or Buffer or Blob */,
  metadata: { key: "value" },
  requireSignedURLs: false,
});

// example result
const result = {
  id: "aiofaosu7-13515135-jhsduy8173",
  filename: "demo.jpg",
  meta: { demo: "demo" },
  requireSignedURLs: false,
  uploaded: "2014-01-02T02:20:00.123Z",
  variants: ["..."], // url of variants
};

Upload image url

const { success, errors, messages, result } = await cloudflare.uploadImageURL({
  imageURL: "https://example.com/image.png",
  metadata: { key: "value" },
  requireSignedURLs: false,
});

// example result
const result = {
  id: "aiofaosu7-13515135-jhsduy8173",
  filename: "demo.jpg",
  meta: { demo: "demo" },
  requireSignedURLs: false,
  uploaded: "2014-01-02T02:20:00.123Z",
  variants: ["..."], // url of variants
};

Update image

const { success, errors, messages, result } = await cloudflare.updateImage({
  imageId: "image_id",
  metadata: { key: "value" },
  requireSignedURLs: false,
});

// example result
const result = {
  id: "aiofaosu7-13515135-jhsduy8173",
  filename: "demo.jpg",
  meta: { demo: "demo" },
  requireSignedURLs: false,
  uploaded: "2014-01-02T02:20:00.123Z",
  variants: ["..."], // url of variants
};

Delete image

const { success, errors, messages, result } = await cloudflare.deleteImage(
  "image_id"
);

// result is empty
const success = true;

Direct upload url

const { success, errors, messages, result } =
  await cloudflare.directUploadUrlV2({
    expiry: new Date(Date.now() + 1000 * 60 * 60 * 1),
    metadata: { key: "value" },
    requireSignedURLs: false,
  });

// example of result
const result = {
  id: "7gaf8asg8vba97vga-avba78fa",
  uploadURL: "...",
};

Images keys

List Signing Keys

const { success, errors, messages, result } =
  await cloudflare.listSigningKeys();

// example of result
const result = {
  keys: [
    {
      name: "default",
      value: "...",
    },
  ],
};

Images Variants

List variants

const { success, errors, messages, result } = await cloudflare.listVariants();

// example of result
const result = {
  variants: {
    hero: {
      id: "hero",
      neverRequireSignedURLs: true,
      options: {
        fit: "scale-down",
        height: 768,
        metadata: "none",
        width: 1366,
      },
    },
  },
};

Variant details

const { success, errors, messages, result } = await cloudflare.variantDetails(
  "variant_id"
);

// example of result
const result = {
  id: "hero",
  neverRequireSignedURLs: true,
  options: {
    fit: "scale-down",
    height: 768,
    metadata: "none",
    width: 1366,
  },
};

Create variant

const { success, errors, messages, result } = await cloudflare.createVariant({
  name: "variant_name",
  options: { width: 100, height: 100, fit: "contain", metadata: "none" },
});

// example of result
const result = {
  id: "hero",
  neverRequireSignedURLs: true,
  options: {
    fit: "scale-down",
    height: 768,
    metadata: "none",
    width: 1366,
  },
};

Update variant

const { success, errors, messages, result } = await cloudflare.updateVariant({
  id: "variant_id",
  options: { width: 100, height: 100, fit: "contain", metadata: "none" },
  neverRequireSignedURLs: false,
});

// example of result
const result = {
  id: "hero",
  neverRequireSignedURLs: true,
  options: {
    fit: "scale-down",
    height: 768,
    metadata: "none",
    width: 1366,
  },
};

Delete variant

const { success, errors, messages, result } = await cloudflare.deleteVariant(
  "variant_id"
);

// result is empty
const success = true;

cloudflare-images's People

Contributors

jvddavid avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

cloudflare-images's Issues

typo in README

Hey, first of all, great package! I was looking for a nodejs client for Images service and this one seems to be perfect for what I need.

I bumped into a typo in README.

Here in the Auth section:
https://github.com/jvddavid/cloudflare-images/blob/main/README.md#auth

The import of library is misspelled "jvvdavid" instead of "jvddavid". I copied that line into my terminal to "yarn add...", and it thrown an error. For a while, I thought the package is not available at NPM anymore. But then I noticed that it's just a typo :-)

Have a great rest of the week!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.