salomonsky commited on
Commit
28a44c3
·
verified ·
1 Parent(s): 1c10ee7

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +12 -4
server.js CHANGED
@@ -13,7 +13,8 @@ const app = express();
13
  app.use(cors());
14
  app.use(express.json());
15
 
16
- const upload = multer({ dest: 'temp_uploads/' });
 
17
 
18
  const GEMINI_API_KEY = process.env.GEMINI_API_KEY || process.env.gemini_api || '';
19
 
@@ -25,7 +26,8 @@ if (TTS_CREDENTIALS) {
25
  ttsClient = new TextToSpeechClient();
26
  }
27
 
28
- const TEMP_DIR = path.join(__dirname, 'temp_files');
 
29
 
30
  async function ensureDir(dir) {
31
  try {
@@ -124,7 +126,8 @@ async function processUploadedImage(filePath, aspectRatio) {
124
  })
125
  .toFile(outputFilename);
126
 
127
- await fs.unlink(filePath);
 
128
  return outputFilename;
129
  } catch (error) {
130
  console.error('Error al procesar imagen subida:', error.message);
@@ -181,7 +184,7 @@ async function getAudioDuration(audioPath) {
181
  }
182
 
183
  app.post('/test-voice', async (req, res) => {
184
- await ensureDir(TEMP_DIR);
185
  const { text, lang, service } = req.body;
186
  try {
187
  const audioFilePath = await textToSpeech(text, lang, service);
@@ -207,7 +210,10 @@ app.post('/test-voice', async (req, res) => {
207
  });
208
 
209
  app.post('/generate-video', upload.array('photos'), async (req, res) => {
 
210
  await ensureDir(TEMP_DIR);
 
 
211
  const { script, useLlmForScript, aspectRatio, imageDuration, shouldGenerateImages, imageGenerationPrompt, voiceService, voiceLanguage } = req.body;
212
  let uploadedFiles = req.files || [];
213
 
@@ -417,6 +423,8 @@ app.post('/generate-video', upload.array('photos'), async (req, res) => {
417
 
418
  const PORT = process.env.PORT || 5000;
419
  app.listen(PORT, async () => {
 
420
  await ensureDir(TEMP_DIR);
 
421
  console.log(`Servidor Node.js escuchando en el puerto ${PORT}`);
422
  });
 
13
  app.use(cors());
14
  app.use(express.json());
15
 
16
+ // Se cambia el destino de Multer a un directorio dentro de /tmp, que es siempre escribible en Docker
17
+ const upload = multer({ dest: '/tmp/temp_uploads/' });
18
 
19
  const GEMINI_API_KEY = process.env.GEMINI_API_KEY || process.env.gemini_api || '';
20
 
 
26
  ttsClient = new TextToSpeechClient();
27
  }
28
 
29
+ // Se cambia el directorio temporal general a un directorio dentro de /tmp
30
+ const TEMP_DIR = '/tmp/temp_files';
31
 
32
  async function ensureDir(dir) {
33
  try {
 
126
  })
127
  .toFile(outputFilename);
128
 
129
+ // Es importante eliminar el archivo original subido por multer después de procesarlo
130
+ await fs.unlink(filePath);
131
  return outputFilename;
132
  } catch (error) {
133
  console.error('Error al procesar imagen subida:', error.message);
 
184
  }
185
 
186
  app.post('/test-voice', async (req, res) => {
187
+ await ensureDir(TEMP_DIR); // Asegura que TEMP_DIR exista
188
  const { text, lang, service } = req.body;
189
  try {
190
  const audioFilePath = await textToSpeech(text, lang, service);
 
210
  });
211
 
212
  app.post('/generate-video', upload.array('photos'), async (req, res) => {
213
+ // Asegura que tanto TEMP_DIR como el directorio de destino de Multer existan y sean escribibles
214
  await ensureDir(TEMP_DIR);
215
+ await ensureDir(upload.dest); // Crea el directorio para los uploads de Multer si no existe
216
+
217
  const { script, useLlmForScript, aspectRatio, imageDuration, shouldGenerateImages, imageGenerationPrompt, voiceService, voiceLanguage } = req.body;
218
  let uploadedFiles = req.files || [];
219
 
 
423
 
424
  const PORT = process.env.PORT || 5000;
425
  app.listen(PORT, async () => {
426
+ // Asegura que los directorios temporales existan al iniciar el servidor
427
  await ensureDir(TEMP_DIR);
428
+ await ensureDir('/tmp/temp_uploads'); // Asegura que el directorio de uploads de Multer exista
429
  console.log(`Servidor Node.js escuchando en el puerto ${PORT}`);
430
  });