Сегодняшним веб-сайтам и мобильным приложениям требуется возможность загрузки изображений в облако для упрощения управления, а не непосредственно в базу данных, поэтому для веб-сайтов и мобильных приложений во всем мире требуется функциональность для загрузки изображений в облако для хранения и быстрого поиска. поэтому 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.
Удачного программирования!