Zenodo: ¿Existe un límite de tamaño de archivo para cargar con la API REST?

Creado en 21 abr. 2019  ·  3Comentarios  ·  Fuente: zenodo/zenodo

Estoy intentando cargar un archivo grande de 1 a 2 GB en la caja de arena de Zendo. Sigo recibiendo un error de EPIPE cuando envío mi solicitud.

data = {"filename":'test.tar'}
files ={'file' : ("test.tar",open('test.tar','rb'),{'Expires': '0'})}

r = requests.post('https://sandbox.zenodo.org/api/deposit/depositions/274851/files',
              params={'access_token': ACCESS_TOKEN},files=files,data=data)

El error que obtengo es el siguiente

ConnectionError: ('Connection aborted.', error("(32, 'EPIPE')",))

¿Esto se debe a un límite de tamaño impuesto a las cargas?

Comentario más útil

De hecho, existe un límite de tamaño de la antigua API, que admite hasta 100 MB por archivo. La nueva API admite hasta 50 GB por archivo y puede ver cómo usarla en los siguientes enlaces:

Esta API no es completamente estable, por lo que podría cambiar un poco en el futuro. Tan pronto como desarrollemos una versión estable, actualizaremos la documentación aquí: http://developers.zenodo.org/#deposition -files

Avísame si necesitas más ayuda.

Todos 3 comentarios

De hecho, existe un límite de tamaño de la antigua API, que admite hasta 100 MB por archivo. La nueva API admite hasta 50 GB por archivo y puede ver cómo usarla en los siguientes enlaces:

Esta API no es completamente estable, por lo que podría cambiar un poco en el futuro. Tan pronto como desarrollemos una versión estable, actualizaremos la documentación aquí: http://developers.zenodo.org/#deposition -files

Avísame si necesitas más ayuda.

Gracias por la respuesta @frankois. Verificaré la nueva API.

Estoy un poco confundido cuando leo acerca de las API _new_ y _old_: no puedo encontrarlas.

Acabo de descubrir a Zenodo y esta es la única documentación que encontré. Pero no dice que se refiera a _new_ o _old_ API:
https://developers.zenodo.org

Por lo tanto, no tengo claro si las versiones _old_ y _new_ siguen funcionando al mismo tiempo, tienen diferentes accesos a la URL ... o solo hay un acceso a la API, por lo que las aplicaciones de Python existentes podrían dejar de funcionar debido a cambios y nuevas funcionalidades.
Por favor @frankois ¿ podrías aclarar esto?

¿Hay un registro de cambios publicado
Quiero decir: si encuentro un script de Python en algún lugar, ¿cómo puedo saber (por su fecha) si fue escrito para la API nueva o antigua?


Más específicamente, estaba tratando de usar esta interfaz de Python para la API de Zenodo:https://github.com/SiLeBAT/zenodo-python

Pero, como informé allí , mis cargas fallan porque los archivos en el repositorio se corrompen.
Sospecho que podría estar relacionado con este cambio en la API mencionado por @frankois .
¿Podría algún experto revisar esta línea en su código :

data = {'file': open(file_path, 'rb')}

Y compare con el enlace anterior proporcionado por @frankois , donde @slint dice :
"_Pasamos el objeto de archivo (fp) directamente a la solicitud como 'datos' para la carga de la transmisión_".
Entonces, supongo que la línea anterior se refería a _old API_, ¿y tal vez debería corregirse a algo como esto?

data = open(file_path, 'rb')

¿Fue útil esta página
0 / 5 - 0 calificaciones