¿Cuándo es seguro asumir que las cargas de archivos son exitosas?

1

Cuando subo archivos a un servidor a través de HTTP o FTP, normalmente los vuelvo a descargar solo para comprobar que se cargaron correctamente (uso sumas de comprobación md5 para verificarlo).

¿Es esto necesario? ¿Puedo asegurarme de que las cargas de archivos a través de HTTP o FTP tengan éxito, si el software utilizado para cargarlas (por ejemplo, el navegador al usar SkyDrive o servicios similares, o FTPZilla al usar FTP, etc.) no me dio ningún error?

Oh, y yo sé sobre rsync , no hace falta que lo sugiera. Esto es para casos donde rsync no es una opción.

Camilo Martin
fuente

Respuestas:

2

El éxito en términos de si los paquetes de datos realmente llegaron o no como se enviaron suele estar determinado por el protocolo subyacente, en este caso TCP. A menudo, esto es suficiente para asumir el éxito, ya que la mayoría de los protocolos de transferencia de archivos lo utilizan para determinar si se produjo algún daño en los datos a nivel de red.

Sin embargo, supongo que te refieres a todo el archivo, en cuyo caso sí, la suma de comprobación es la mejor manera de verificar los datos cargados.

Sin embargo, no hay ninguna razón por la que necesite volver a descargarlos para verificarlos, puede realizar la suma de comprobación en el propio servidor. Específicamente con FTP, hay soluciones que realizan la suma de comprobación de los archivos como parte del proceso de carga, por ejemplo, drftpd con el complemento zipscript usa archivos .sfv para verificar los archivos cargados en un nivel de directorio.

deed02392
fuente
¿Entonces FTP soporta nativamente la suma de verificación (+1 para la información)? ¿Está habilitado de forma predeterminada en clientes populares como FileZilla, o generalmente requiere la descarga de un complemento? ¿Qué pasa con HTTP? ¿Debo suponer que un navegador es lo suficientemente inteligente como para verificar el éxito de la transferencia en el nivel de TCP (y que los servidores son lo suficientemente inteligentes como para verificar que los datos llegaron)?
Camilo Martin
Convenido. Si tiene una cuenta de shell en el servidor, podría codificar los archivos. Mejor aún, al tener que hashear los archivos localmente, puede mantener un registro de los hashes de sus archivos, lo que puede ser útil algún día.
Synetech
@Synetech Si tuviera una cuenta de shell en cada servidor donde almaceno archivos, usaría rsync. Esta pregunta es más para casos como SkyDrive, donde se ve obligado a usar un simple proceso de descarga / descarga de http. Además, tengo curiosidad por esta característica de suma de comprobación de FTP.
Camilo Martin
Me temo que la suma de comprobación como parte de FTP tiene que ser compatible con el servidor. En su caso, está limitado por lo que ofrece su proveedor de servicios. Debería preguntar si tienen una función para realizar la suma de comprobación de los archivos cargados contra un .sfv (básicamente, un archivo cargado con un directorio que contiene el nombre de archivo y el CRC del archivo), lo que podría confirmar que todo está bien (generalmente con un pseudodir que especifica 100 Se cargan% de archivos que pertenecen a este directorio).
deed02392
1
Básicamente, TCP y los protocolos de nivel inferior (OSI L2) tienen una suma de comprobación integrada. Son técnicamente débiles en comparación con los estándares modernos, pero esto solo sería un problema si estuviera operando en una conexión muy poco confiable. en.wikipedia.org/wiki/… citeseer.ist.psu.edu/stone00when.html
deed02392