Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

349
Visualizações
JavaScript, ¿cómo puedo asegurarme de que el archivo descargado sea exitoso y no esté dañado?

Estoy jugando con Electron-Node.js e intento descargar un archivo de un servidor y guardarlo en el disco local.

El siguiente código funciona como se esperaba, aunque no estoy seguro de si este es el mejor método para hacerlo.

 <script> const { ipcRenderer } = require('electron'); var fs = require('fs'); // (2) convert the blob to file. async function saveBlobToFile(blob, filename) { let fileData = new Int8Array(await blob.arrayBuffer()); fs.writeFileSync(filename, fileData); console.log("Blob successfully saved to file."); //is the file healthy though? } // (1) (download the file) function download(downloadURL, downloadDirectory){ var filename = "test.zip"; //this could be exe, images, pdf if (!fs.existsSync(downloadDirectory)){ fs.mkdirSync(downloadDirectory, { recursive: true }); console.log("Download Directory doesn't exist, created."); } console.log("Downloading..."); fetch(downloadURL) .then(response => response.blob()) .then(blob => { console.log("Downloaded and is now saving..."); saveBlobToFile(blob, downloadDirectory+"\\"+filename); }).catch(console.error); } download("https://sample.com/test.zip", "SOME_DIRECTORY_HERE"); //let's try to download the file. </script>

Aquí viene el WhatIF ;

Lo pruebo con un tamaño de archivo de 50MB y funciona, el archivo es saludable. Pero, ¿qué sucede si el tamaño del archivo es superior a 200MB o, por ejemplo, un large file y el usuario solo tiene una conexión a Internet muy limitada? El archivo podría corromperse, ¿cómo evitar esto? ¿Cómo podemos comprobar o asegurarnos de que el archivo se haya descargado correctamente y no esté dañado?

Estoy pensando, tal vez pueda verificar la suma de verificación MD5 del archivo descargado y compararlo con el archivo del servidor. ¿Pero es esto suficiente?

Si la suma de verificación MD5 es diferente del servidor, vuelva a descargar el archivo y vuelva a verificarlo, pero nuevamente esto será una pérdida de datos para un usuario con una conexión a Internet muy limitada.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Como dijo Marc , no hay una razón común por la que su archivo se corrompa

Pero

Estoy pensando, tal vez pueda verificar la suma de verificación MD5 del archivo descargado y compararlo con el archivo del servidor. ¿Pero es esto suficiente?

es para mí la respuesta de escritura a su propia pregunta.

Después

Si la suma de verificación MD5 es diferente a la del servidor, vuelva a descargar el archivo y vuelva a verificarlo, pero nuevamente esto será una pérdida de datos para un usuario con una conexión a Internet muy limitada.

Bueno, puedes dividir tu archivo en partes.

Si tiene archivos grandes para transferir (> 1 Gb, por ejemplo), puede dividirlos en fragmentos de 100 Mb y transferirlos uno por uno, y verificar las sumas de verificación individualmente, luego concatenarlas y verificar la suma de verificación completa nuevamente.

p.ej:

  1. Solicite la descarga al servidor, el servidor responde dando la cantidad de archivos o el tamaño del archivo final
  2. En la primera solicitud de descarga de archivos, divida el archivo de 1 Gb en 10 archivos en una carpeta tmp en el servidor.
  3. Después de cada descarga, verifique la suma de verificación de esta parte única.
  • Si la suma de verificación es incorrecta, solo vuelva a descargar esta parte
  1. Después de descargar todas las partes, concatenarlas (probablemente con Buffer.from(fileParts) y validar la suma de verificación final

Es solo un pensamiento rápido sobre una posible solución a su problema.

Espero que te ayude.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda