caso de uso
Estamos hablando de archivos grandes aquí (mínimo 100 mb,
Meta
Optimice el rendimiento de carga y/o descarga de datos hacia/desde Zenodo.
Subir
Mueva los datos de Zenodo lo más rápido posible. Usando 1) JavaScript (navegador) y/o 2) Python (API).
_Lado del cliente_
JavaScript: archivo de fragmentos (muchas bibliotecas existentes admiten esto, por ejemplo, PLUpload), cargue fragmentos en paralelo (no he visto esto en ningún lugar; podría usar, por ejemplo, trabajadores web de JavaScript).
Python: lo mismo que JavaScript: fragmentar/paralelizar + buscar en la canalización HTTP y la capa TCP también.
Cuestiones a tener en cuenta:
_Lado del servidor_
Descargar
Ejemplo 1: conjunto de datos de 260 GB en 1000 archivos. ¿Cómo puede un investigador descargar los archivos fácilmente sin tener que hacer clic en 1000 enlaces?
Ejemplo 2: conjunto de datos de 260 GB en 4 archivos. Qué sucede si se pierde la conectividad de la red (es decir, descargas reanudables).
_Lado del cliente_
Tal vez sea posible escribir una aplicación de JavaScript que pueda ayudar a descargar los 1000 archivos. La misma aplicación podría ayudar con las descargas reanudables. Nuevamente, el modelo de trabajo web de Javascript podría usarse para descargar el archivo en fragmentos.
_Lado del servidor_
Implementar soporte para solicitudes de rango HTTP. Me gusta cargar (modelo de proceso y descargas simultáneas). Por ejemplo, los clientes lentos que tardan en descargar un archivo llenarán la línea.
Fuera del alcance (pero debe discutirse): otros métodos para optimizar la entrega de archivos, como las redes de entrega de contenido.
La parte de Python irá principalmente a inveniosoftware/invenio-files-rest
Las partes de JavaScript serán repositorios separados.
Lamento resucitar este viejo problema en una dirección algo fuera de tema... Me gustaría mucho que el servidor HTTP de Zenodo admitiera solicitudes de rango HTTP, que se mencionan en el comentario original. Por lo que puedo decir, actualmente no son honrados. ¿Está esto en la hoja de ruta en este momento?
¿Hay una mejor manera de descargar archivos grandes que usar un navegador de Internet común? Los archivos grandes a través de http tienden a fallar en cuestión de horas y la descarga no se puede reanudar.
En mi caso, estoy tratando de descargar un conjunto de datos de 50 GB.
La velocidad de descarga ronda los 500 Kbps y falla la conexión entre las 12 horas que dura la descarga.
He estado tratando de descargarlo todos los días durante meses (necesito el conjunto de datos para mi tesis de maestría).
¿Alguna sugerencia?
Ni siquiera pude descargar un conjunto de datos de 2,2 GB después de 5 intentos, el administrador de descargas tampoco pudo ayudar.
@Vichoko , lograste resolverlo? en caso afirmativo, ¿cómo?
Yo también me he sentido muy frustrado al intentar descargar un conjunto de datos que incluye dos archivos grandes (12 Gb y 37 Gb) durante días y días.
Encontré https://zenodo.org/record/1261813 (https://gitlab.com/dvolgyes/zenodo_get) y me ayudó mucho. Me las arreglé para descargar todo el registro en el primer intento.
A primera vista, no veo nada mágico al respecto, así que supongo que el truco debe estar en algunas de las partes internas de la implementación de wget en Python.
Link: https://zenodo.org/api/files/cb4ca1fa-1db1-40f9-8f39-0e9d3b2af7ae/musdb18hq.zip size: 21607.1 MB
0% [ ] 3121152 / 22656664047
Podía descargar archivos de 21 GB más rápido en 2006 con acceso telefónico. ¿Zenodo carece de infraestructura CDN? ¿Por qué no usar un depósito S3 o GCS?
Creo que este problema debería reabrirse, dado que Zenodo exhibe descargas anormalmente lentas e inestables. ¿O si hay otro problema para rastrear las descargas de Zenodo?
Comentario más útil
¿Hay una mejor manera de descargar archivos grandes que usar un navegador de Internet común? Los archivos grandes a través de http tienden a fallar en cuestión de horas y la descarga no se puede reanudar.
En mi caso, estoy tratando de descargar un conjunto de datos de 50 GB.
La velocidad de descarga ronda los 500 Kbps y falla la conexión entre las 12 horas que dura la descarga.
He estado tratando de descargarlo todos los días durante meses (necesito el conjunto de datos para mi tesis de maestría).
¿Alguna sugerencia?