Шаг 0. Регистрация в Cloudinary и получение данных
- Зарегистрируйтесь на Cloudinary:
Перейдите на официальный сайт Cloudinary, создайте учетную запись, указав имя, email и пароль.
Получите данные для API:
В личном кабинете перейдите в раздел Dashboard. Найдите следующие данные:- Cloud Name: Имя облака. API Key: Ключ API. API Secret: Секретный ключ API.
- Добавьте данные в файл index.js:
cloudinary.config({ cloud_name: 'ваш_cloud_name', api_key: 'ваш_api_key', api_secret: 'ваш_api_secret' });
- Скачайте и установите Node.js: Перейдите на официальный сайт Node.js и скачайте последнюю LTS-версию.
Во время установки убедитесь, что включили галочку "Automatically install necessary tools". - Проверьте установку:
Откройте терминал (Command Prompt или PowerShell) и выполните команды:node -v
npm -v
Они отобразят версии Node.js и npm, подтверждая успешную установку.
- Создайте папку для вашего проекта, например:
mkdir D:\img-optimiz cd /d D:\img-oprimiz
- Инициализируйте проект:
npm init -y
Это создаст файл package.json, в котором будут храниться данные о проекте и его зависимостях.
- Установите пакет Cloudinary:
npm install cloudinary
- Убедитесь, что он установлен. Вы увидите папку node_modules в директории проекта.
- В той же папке создайте файл index.js (через любой текстовый редактор или в терминале):
echo > index.js
- Откройте файл и добавьте следующий код:
const fs = require('fs'); const path = require('path'); const https = require('https'); const cloudinary = require('cloudinary').v2; // Настройка Cloudinary cloudinary.config({ cloud_name: 'ваш_cloud_name', // Замените на ваш cloud_name api_key: 'ваш_api_key', // Замените на ваш API ключ api_secret: 'ваш_api_secret' // Замените на ваш секретный ключ }); // Папки const inputFolder = 'D:/img-optimiz/images'; // Папка с исходными изображениями const outputFolder = 'D:/img-optimiz/img-opt'; // Папка для сохранения обработанных изображений // Убедитесь, что выходная папка существует if (!fs.existsSync(outputFolder)) { fs.mkdirSync(outputFolder, { recursive: true }); } // Чтение всех файлов из папки fs.readdir(inputFolder, (err, files) => { if (err) { return console.log('Ошибка чтения папки:', err); } // Фильтруем только изображения files.filter(file => /\.(jpg|jpeg|png|gif|webp)$/i.test(file)) .forEach(file => { const filePath = path.join(inputFolder, file); // Загружаем и обрабатываем изображение на Cloudinary cloudinary.uploader.upload(filePath, { format: 'webp', quality: 'auto' }, (error, result) => { if (error) { console.log(`Ошибка загрузки ${file}:`, error); } else { console.log(`Файл ${file} обработан:`, result.secure_url); // Скачиваем обработанное изображение обратно const outputFilePath = path.join(outputFolder, `${path.basename(file, path.extname(file))}.webp`); const fileStream = fs.createWriteStream(outputFilePath); https.get(result.secure_url, response => { response.pipe(fileStream); fileStream.on('finish', () => { console.log(`Обработанный файл сохранен: ${outputFilePath}`); }); }).on('error', err => { console.log(`Ошибка при скачивании ${file}:`, err); }); } }); }); });
- Убедитесь, что все пути и настройки указаны верно. Запустите проект командой:
node index.js
Скрипт автоматически загрузит изображения из папки D:/img-optimiz/images, обработает их через Cloudinary и сохранит оптимизированные файлы в папке D:/img-optimiz/img-opt.
- Автоматический запуск через .bat файл:
Создайте файл start.bat со следующим содержимым:@echo off cd /d D:\img-optimiz node index.js pause
- Запуск через npm script:
Добавьте в файл package.json в секцию scripts:"scripts": { "start": "node index.js" }
Теперь проект можно запускать командой:npm start
До обработки
После обработки
Готово! Если возникнут вопросы, пишите.