Сегодняшним веб-сайтам и мобильным приложениям требуется возможность загрузки изображений в облако для упрощения управления, а не непосредственно в базу данных, поэтому для веб-сайтов и мобильных приложений во всем мире требуется функциональность для загрузки изображений в облако для хранения и быстрого поиска. поэтому Cloudinary помогает нам управлять облачными активами с помощью Node.js и Express.

Что такое облачность?

Cloudinary — это технология SaaS, которая в основном используется для управления всеми мультимедийными ресурсами, присутствующими в облаке. Ресурсы могут быть любыми из веб-приложения или мобильного приложения в зависимости от типа.

Как использовать Cloudinary?

1- Создайте учетную запись на Cloudinary.

Чтобы установить Cloudinary, запустите команду в каталоге вашего проекта:

npm install cloudinary

Включите классы Cloudinary Node.js в свой код, и вы сможете найти свои cloud_name, api_key и api_secret. на странице Dashboard.

Скопируйте ваши cloud_name, api_key и api_secret и сохраните их в файле .env:

Создайте файл cloudinary.js и запишите код:

const cloudinary = require("cloudinary");

cloudinary.config({
    cloud_name: process.env.CLOUDINARY_CLOUD_NAME,
    api_key: process.env.CLOUDINARY_API_KEY,
    api_secret: process.env.CLOUDINARY_API_SECRET,
  });

после настройки облака, вот функция загрузки изображения:

  // Cloudinary Upload Image
const cloudinaryUploadImage = async (fileToUpload) => {
    try {
      const data = await cloudinary.uploader.upload(fileToUpload, {
        resource_type: "auto",
      });
      return data;
    } catch (error) {
      console.log(error);
      throw new Error("Internal Server Error (cloudinary)");
    }
  };

Облачная функция удаления изображения:

  // Cloudinary Remove Image
const cloudinaryRemoveImage = async (imagePublicId) => {
    try {
      const result = await cloudinary.uploader.destroy(imagePublicId);
      return result;
    } catch (error) {
      console.log(error);
      throw new Error("Internal Server Error (cloudinary)");
    }
  };

Cloudinary Функция удаления нескольких изображений:

  // Cloudinary Remove Multiple Image
const cloudinaryRemoveMultipleImage = async (publicIds) => {
  try {
    const result = await cloudinary.v2.api.delete_resources(publicIds)
    return result;
  } catch (error) {
    console.log(error);
      throw new Error("Internal Server Error (cloudinary)");
  }
};

затем экспортируйте эти функции:

module.exports = {
  cloudinaryUploadImage,
  cloudinaryRemoveImage,
  cloudinaryRemoveMultipleImage,
};

Создайте файл multer.js, который служит механизмом хранения для Cloudinary:

const path = require("path");
const multer = require("multer"); // to upload img

//Photo Storage 
const photoStorage = multer.diskStorage({
    destination: function(req,file, cb){
        cb(null, path.join(__dirname, "../images"));
    },
    filename: function(req,file,cb){
        if(file){
            cb(null, new Date().toISOString().replace(/:/g, "-") 
         + file.originalname);
        }else {
            cb(null, false);
          }
    }
});
// Photo Upload Middleware
const photoUpload = multer({
    storage: photoStorage,
    fileFilter: function (req, file, cb) {
        if (file.mimetype.startsWith("image")) {
          cb(null, true);
        } else {
          cb({ message: "Unsupported file format" }, false);
        }
      },
      limits: { fileSize: 1024 * 1024 }, // 1 megabyte
    });
    module.exports = photoUpload;

Вот и все! Теперь вы можете использовать Cloudinary с Node.js для загрузки/удаления одного/нескольких изображений.

Заключение

Cloudinary — это надежный инструмент, который предлагает множество функций, выходящих за рамки этой статьи. Я призываю вас углубиться и открыть для себя дополнительные возможности, которые предоставляет этот инструмент.

для получения более подробной информации посетите Cloudinary Documentation.

Удачного программирования!