Actualmente me encuentro con un problema al descargar algunos archivos de un servidor FTP: se corrompen. Una introducción al problema puede verse en esta pregunta del SO (cuando pensaba que el problema estaba en mi software basado en Qt, mientras que ahora estoy convencido de que está en el servidor).
La situación es la siguiente: Quiero copiar 8 archivos a un servidor FTP y descargarlos después usando un software basado en Qt con QNetworkAccessManager. En mis intentos de hacerlo, he descubierto que siempre 3 de los 8 archivos se corrompen (utilizando tanto la verificación del hash como el tamaño del archivo) de la misma manera (el mismo tamaño de archivo erróneo). El problema no es con mi software: la descarga de los archivos usando tanto Mozilla como Chrome da como resultado el exacto los mismos errores. El proceso completo es el siguiente:
- 8 archivos están en una carpeta de Linux Ubuntu. El tamaño de los archivos es correcto.
- Los 8 archivos se transfieren a la carpeta de Windows 7.
- Los archivos se envían al servidor FTP utilizando FileZilla. Una vez terminado, FileZilla le dice al correcto tamaños para cada uno de los 8 archivos.
- Los archivos se descargan tanto en Linux Ubuntu como en Windows utilizando tanto los navegadores como la aplicación basada en Qt con QNetworkAccessManager. En Windows los archivos también se descargan con FileZilla.
- Los mismos 3 archivos se corrompen - verificado por los diferentes tamaños.
Después de discutir el problema en esa pregunta del SO, se sugirió que el problema podría ser del lado del servidor. Investigué un poco en la web y encontré este , este y este . Las sugerencias serían un cálculo de tamaño diferente por parte de FileZilla (difícil ya que estoy utilizando el cálculo de tamaño de Windows y Linux la mayor parte del tiempo) y el "problema de transferencia binaria o ASCII".
En cuanto a lo segundo, también me cuesta creer que sea así porque aunque 2 de los 3 archivos problemáticos son softwares y el otro es un archivo binario, hay un cuarto archivo que también es un binario y que no muestra problema alguno. (y los otros 3 archivos son .tar.gz comprimidos que supongo que también son binarios y, sin embargo, se descargan correctamente)
Pero supongamos que ese fuera el caso: Tengo que especificar uno de los dos métodos para la descarga. Bueno, ¿cómo podría hacer esto tanto cuando se descarga a través del navegador, así como cuando se descarga a través de QNetworkAccessManager?
Y si no es así: ¿qué ocurre entonces?