Zenodo: Existe um limite de tamanho de arquivo para upload com API REST?

Criado em 21 abr. 2019  ·  3Comentários  ·  Fonte: zenodo/zenodo

Estou tentando fazer upload de um arquivo grande de 1-2 GB na sandbox do Zendo. Sempre recebo um erro EPIPE quando envio minha solicitação.

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)

O erro que recebo é o seguinte

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

Isso é devido a um limite de tamanho imposto aos uploads?

Comentários muito úteis

Na verdade, há um limite de tamanho da API antiga, que suporta até 100 MB por arquivo. A nova API suporta até 50 GB por arquivo e você pode ver como usá-la nos seguintes links:

Esta API não é completamente estável, então pode mudar um pouco no futuro. Assim que desenvolvermos uma versão estável, atualizaremos a documentação aqui: http://developers.zenodo.org/#deposition -files

Avise-me se precisar de mais ajuda.

Todos 3 comentários

Na verdade, há um limite de tamanho da API antiga, que suporta até 100 MB por arquivo. A nova API suporta até 50 GB por arquivo e você pode ver como usá-la nos seguintes links:

Esta API não é completamente estável, então pode mudar um pouco no futuro. Assim que desenvolvermos uma versão estável, atualizaremos a documentação aqui: http://developers.zenodo.org/#deposition -files

Avise-me se precisar de mais ajuda.

Obrigado pela resposta @frankois. Vou verificar a nova API.

Fico um pouco confuso quando leio sobre as APIs _novas_ e _antigas_: não consigo encontrá-las.

Acabei de descobrir o Zenodo e esta é a única documentação que encontrei. Mas não diz que se refere a API _nova_ ou _antiga_:
https://developers.zenodo.org

Portanto, não tenho certeza se as versões _antigas_ e _novas_ continuam funcionando ao mesmo tempo, tendo diferentes acessos de url ... ou se há apenas um acesso à API, os aplicativos Python existentes podem parar de funcionar devido a mudanças e novas funcionalidades.
Por favor, @frankois, você poderia esclarecer isso?

Existe um changelog publicado em algum lugar, para que possamos saber quando cada novo recurso da API foi lançado?
Quer dizer: se eu encontrar um script Python em algum lugar, como posso saber (por sua data) se ele foi escrito para a API antiga ou nova?


Mais especificamente, eu estava tentando usar esta interface Python para a API Zenodo:https://github.com/SiLeBAT/zenodo-python

Mas, como relatei , meus uploads estão falhando porque os arquivos no repositório foram corrompidos.
Suspeito que isso possa estar relacionado a essa mudança na API mencionada por @frankois .
Algum especialista poderia revisar esta linha em seu código :

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

E compare com o link acima fornecido por @frankois , onde @slint diz :
"_Passamos o objeto de arquivo (fp) diretamente para solicitar como 'dados' para upload de fluxo_".
Então, eu acho que a linha acima se refere a _antiga API_, e talvez deva ser corrigida para algo assim?

data = open(file_path, 'rb')

Esta página foi útil?
0 / 5 - 0 avaliações