Zenodo: Gibt es eine Dateigrößenbeschränkung für das Hochladen mit der REST-API?

Erstellt am 21. Apr. 2019  ·  3Kommentare  ·  Quelle: zenodo/zenodo

Ich versuche, eine große Datei mit 1-2 GB in die Zendo-Sandbox hochzuladen. Ich erhalte beim Absenden meiner Anfrage immer einen EPIPE-Fehler.

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)

Der Fehler, den ich erhalte, ist wie folgt

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

Liegt das an einer Größenbeschränkung für die Uploads?

Hilfreichster Kommentar

Tatsächlich gibt es eine Größenbeschränkung der alten API, die bis zu 100 MB pro Datei unterstützt. Die neue API unterstützt bis zu 50 GB pro Datei und Sie können unter den folgenden Links sehen, wie Sie sie verwenden:

Diese API ist nicht vollständig stabil, daher kann sie sich in Zukunft etwas ändern. Sobald wir eine stabile Version entwickeln, aktualisieren wir die Dokumentation hier: http://developers.zenodo.org/#deposition -files

Lassen Sie es mich wissen, wenn Sie weitere Hilfe benötigen.

Alle 3 Kommentare

Tatsächlich gibt es eine Größenbeschränkung der alten API, die bis zu 100 MB pro Datei unterstützt. Die neue API unterstützt bis zu 50 GB pro Datei und Sie können unter den folgenden Links sehen, wie Sie sie verwenden:

Diese API ist nicht vollständig stabil, daher kann sie sich in Zukunft etwas ändern. Sobald wir eine stabile Version entwickeln, aktualisieren wir die Dokumentation hier: http://developers.zenodo.org/#deposition -files

Lassen Sie es mich wissen, wenn Sie weitere Hilfe benötigen.

Danke für die Antwort @frankois. Ich werde mir die neue API ansehen.

Ich bin etwas verwirrt, wenn ich von den _neuen_ und _alten_ APIs lese: Ich kann sie nicht finden.

Ich habe Zenodo gerade entdeckt und dies ist die einzige Dokumentation, die ich gefunden habe. Aber es sagt nicht, dass es sich auf _new_ oder _old_ API bezieht:
https://developers.zenodo.org

Mir ist also nicht klar, ob sowohl _alte_ als auch _neue_ Versionen gleichzeitig mit unterschiedlichem URL-Zugriff funktionieren ... oder es nur einen API-Zugriff gibt, sodass vorhandene Python-Anwendungen aufgrund von Änderungen und neuen Funktionen möglicherweise nicht mehr funktionieren.
Bitte @frankois könntest du das klären?

Gibt es irgendwo ein veröffentlichtes Änderungsprotokoll , damit wir wissen, wann die einzelnen neuen API-Funktionen veröffentlicht wurden?
Ich meine: Wenn ich irgendwo ein Python-Skript finde, wie kann ich dann (an seinem Datum) erkennen, ob es für die alte oder die neue API geschrieben wurde?


Genauer gesagt habe ich versucht, diese Python-Schnittstelle für die Zenodo-API zu verwenden:https://github.com/SiLeBAT/zenodo-python

Aber, wie ich berichten dort , meine Uploads scheitern , da Dateien im Repository beschädigt werden.
Ich vermute, dass es mit dieser von @frankois erwähnten Änderung in der API zusammenhängen
Könnte bitte ein Experte diese Zeile in ihrem Code überprüfen:

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

Und vergleichen Sie mit dem obigen Link von @frankois , wo @slint sagt :
"_Wir übergeben das Dateiobjekt (fp) direkt an die Anforderung als 'Daten' für den Stream-Upload_".
Also, ich denke, die obige Zeile bezog sich auf _alte API_, und sollte sie vielleicht so korrigiert werden?

data = open(file_path, 'rb')

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen