Zenodo: Есть ли ограничение на размер файла для загрузки с помощью REST API?

Созданный на 21 апр. 2019  ·  3Комментарии  ·  Источник: zenodo/zenodo

Я пытаюсь загрузить в песочницу Zendo большой файл размером 1-2 ГБ. Когда я отправляю свой запрос, я получаю сообщение об ошибке EPIPE.

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)

Ошибка, которую я получаю, выглядит следующим образом

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

Это связано с ограничением размера загружаемых файлов?

Самый полезный комментарий

Действительно, старый API ограничивает размер, который поддерживает до 100 МБ на файл. Новый API поддерживает до 50 ГБ на файл, и вы можете увидеть, как его использовать, по следующим ссылкам:

Этот API не является полностью стабильным, поэтому он может немного измениться в будущем. Как только мы разработаем стабильную версию, мы обновим документацию здесь: http://developers.zenodo.org/#deposition -files

Дайте мне знать, если вам понадобится дополнительная помощь.

Все 3 Комментарий

Действительно, старый API ограничивает размер, который поддерживает до 100 МБ на файл. Новый API поддерживает до 50 ГБ на файл, и вы можете увидеть, как его использовать, по следующим ссылкам:

Этот API не является полностью стабильным, поэтому он может немного измениться в будущем. Как только мы разработаем стабильную версию, мы обновим документацию здесь: http://developers.zenodo.org/#deposition -files

Дайте мне знать, если вам понадобится дополнительная помощь.

Спасибо за ответ @frankois. Я проверю новый API.

Я немного сбит с толку, когда прочитал о _new_ и _old_ API: я не могу их найти.

Я только что открыл для себя Zenodo, и это единственная найденная мной документация. Но здесь не говорится, что это относится к _new_ или _old_ API:
https://developers.zenodo.org

Поэтому мне не ясно, продолжают ли обе версии _old_ и _new_ работать одновременно, имея разные URL-адреса ... или есть только один доступ к API, поэтому существующие приложения python могут перестать работать из-за изменений и новых функций.
Пожалуйста, @frankois, не могли бы вы это прояснить?

Есть ли где-нибудь опубликованный журнал изменений , чтобы мы могли знать, когда была выпущена каждая новая функция API?
Я имею в виду: если я где-то найду сценарий Python, как я могу определить (по его дате), был ли он написан для старого или нового API?


В частности, я пытался использовать этот интерфейс Python для Zenodo API:https://github.com/SiLeBAT/zenodo-python

Но, как я там сообщил, мои загрузки не выполняются из-за повреждения файлов в репозитории.
Я подозреваю, что это может быть связано с этим изменением в API, упомянутым @frankois .
Не могли бы некоторые эксперты просмотреть эту строку в своем коде :

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

И сравните со ссылкой выше, предоставленной @frankois , где @slint говорит :
«_Мы передаем объект файла (fp) напрямую в запрос как« данные »для загрузки потока_».
Итак, я полагаю, что строка выше относится к _old API_, и, возможно, ее следует исправить на что-то вроде этого?

data = open(file_path, 'rb')

Была ли эта страница полезной?
0 / 5 - 0 рейтинги