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?
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')
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.