require('dotenv').config(); const cloudinary = require('cloudinary').v2; const fs = require('fs'); const path = require('path'); cloudinary.config({ cloud_name: process.env.CLOUDINARY_CLOUD_NAME, api_key: process.env.CLOUDINARY_API_KEY, api_secret: process.env.CLOUDINARY_API_SECRET, }); const FOLDER = 'muglasurucukursu'; const LOCAL_DIR = path.join(__dirname, 'images'); async function uploadAll() { const files = fs.readdirSync(LOCAL_DIR).filter(f => { const stat = fs.statSync(path.join(LOCAL_DIR, f)); return stat.isFile() && /\.(jpg|jpeg|png|svg|webp)$/i.test(f); }); console.log(`📸 ${files.length} resim bulundu. Yükleme başlıyor...\n`); const results = {}; for (const file of files) { const filePath = path.join(LOCAL_DIR, file); const publicId = `${FOLDER}/${path.parse(file).name}`; try { const result = await cloudinary.uploader.upload(filePath, { public_id: publicId, overwrite: true, resource_type: 'image', }); results[file] = result.secure_url; const sizeKB = (fs.statSync(filePath).size / 1024).toFixed(0); console.log(`✅ ${file} (${sizeKB}KB) → ${result.secure_url}`); } catch (err) { console.error(`❌ ${file} yüklenemedi:`, err.message); } } // URL mapping'i kaydet fs.writeFileSync( path.join(__dirname, 'cloudinary-urls-images.json'), JSON.stringify(results, null, 2) ); console.log(`\n🎉 ${Object.keys(results).length}/${files.length} resim yüklendi.`); } uploadAll();