Skip to content

Fastify Cloudinary

Plugin to share a common Cloudinary connection across Fastify.

Installation

Install fastify-cloudinary with your favorite package manager:

sh
npm i fastify-cloudinary
sh
yarn add fastify-cloudinary
sh
pnpm i fastify-cloudinary
sh
bun add fastify-cloudinary

Usage

ts
import cloudinary from 'fastify-cloudinary';
ts
const cloudinary = require('fastify-cloudinary');

Upload Stream

ts
import stream from 'stream';
import util from 'util';
import multipart from '@fastify/multipart';
import cloudinary from 'fastify-cloudinary';

const pipeline = util.promisify(stream.pipeline);

fastify.register(multipart);
fastify.register(cloudinary, { url: 'cloudinary://API_KEY:API_SECRET@CLOUD_NAME' });

fastify.post('/file-uploads', async (req, reply) => {
  const data = await req.file();

  await pipeline(
    data.file,
    fastify.cloudinary.uploader.upload_stream({ public_id: data.fieldname }),
  );

  return { message: 'hi' };
});

Released under the MIT License.