stoicolo / landing-spa-nuxt-api

API for a Landing Page and Context Manegement Nuxt App
MIT License
0 stars 0 forks source link

Imagenes iDrive #22

Closed jpaguero closed 1 week ago

jpaguero commented 3 weeks ago

const express = require('express'); const multer = require('multer'); const axios = require('axios'); const fs = require('fs');

const app = express(); const upload = multer({ dest: 'uploads/' });

// Endpoint para subir una imagen app.post('/upload', upload.single('image'), async (req, res) => { const file = req.file;

// Suponiendo que iDrive tiene una API que permite subir archivos
const apiUrl = 'https://api.idrive.com/upload';
const apiKey = 'TU_API_KEY'; // Reemplaza con tu API Key

try {
    const formData = new FormData();
    formData.append('file', fs.createReadStream(file.path));

    const response = await axios.post(apiUrl, formData, {
        headers: {
            'Content-Type': 'multipart/form-data',
            'Authorization': `Bearer ${apiKey}`
        }
    });

    // Elimina el archivo temporal después de subirlo
    fs.unlinkSync(file.path);

    res.json({ message: 'Imagen subida a iDrive', data: response.data });
} catch (error) {
    console.error('Error al subir la imagen:', error);
    res.status(500).json({ message: 'Error al subir la imagen', error: error.message });
}

});

// Endpoint para obtener una imagen desde iDrive app.get('/image/:id', async (req, res) => { const imageId = req.params.id; const apiUrl = https://api.idrive.com/files/${imageId}; // Ajusta según la API de iDrive

try {
    const response = await axios.get(apiUrl, {
        headers: {
            'Authorization': `Bearer ${apiKey}`
        },
        responseType: 'stream'
    });

    // Enviar la imagen directamente al cliente
    response.data.pipe(res);
} catch (error) {
    console.error('Error al obtener la imagen:', error);
    res.status(500).json({ message: 'Error al obtener la imagen', error: error.message });
}

});

const port = process.env.PORT || 3000; app.listen(port, () => { console.log(Servidor escuchando en el puerto ${port}); });