Zenodo: Use o Commend Line para baixar o arquivo do Zenode

Criado em 16 out. 2019  ·  8Comentários  ·  Fonte: zenodo/zenodo

Desculpe incomodá-lo, mas já enfrento um problema há muito tempo. Não é estável para mim baixar o grande conjunto de dados do Zenode usando o navegador, no entanto. Portanto, o uso de 'wget' vem à minha mente, mas quando sigo a abordagem fornecida em Problemas , falhei.

Do antigo problema, eu uso:

curl  https://zenodo.org/api/records/3407840

Eu tenho a API REST:

https://zenodo.org/api/files/f0d7eb3a-9575-4297-8a9f-39564e383750/Center%28Left_Down%29.zip.001

Mas eu tenho 404 apenas como não usar a API REST.

wget -r https://zenodo.org/api/files/f0d7eb3a-9575-4297-8a9f-39564e383750/Center%28Left_Down%29.zip.001

Você poderia me ajudar? THX!

Comentários muito úteis

Eu tentei isso e funcionou para mim:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-restricted-curl-sh-L26

Todos 8 comentários

Uma vez que os arquivos deste registro estão configurados para acesso restrito, eles não estão disponíveis publicamente, para acessá-los você precisaria de um token de acesso para verificar sua identidade, que você pode criar aqui ou deve seguir o procedimento exibido.

Fechando isso porque não é um erro.

como usar o token privado? Qualquer ideia? Thaks muito

Eu também preciso, alguém sabe?

também estou curioso

@thesby @keunwoochoi

Aqui estão as etapas para baixar os arquivos
da própria linha de comando

1- Adquira o token pessoal (que provavelmente você já possui)
2- execute os seguintes comandos

curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372?token=<your token here>"
substitua esse número de registro 1117372 pelo seu apropriado

Depois de gerar o arquivo de cookie,
agora é só entrar no seu navegador, clicar com o botão direito do mouse no botão de download e copiar o seu url

deve ser semelhante a https://zenodo.org/record/1117372/files/musdb18.zip?download=1

agora ,

apenas execute este comando em seu terminal,

curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372/files/musdb18.zip?download=1" --output musdb18.zip

substitua o link de download pelo seu url de download específico
e deve começar a baixar,

e substitua o nome do arquivo em --output musdb18.zip

com o nome de arquivo apropriado que você deseja

este é o método que funciona para mim,

Deixe-me saber se você tiver algum problema,
Tenha um ótimo dia !

Eu estava tendo problemas com a abordagem dos cookies, então, em vez disso, usei a abordagem da API zenodo (em Python).

Primeiro, criei tokens de acesso pessoais (NÃO aplicativos de desenvolvedor) e atribuí-o à minha variável ACCESS_TOKEN . Em seguida, consultei todos os arquivos disponíveis para download em meu cadastro:

import requests

ACCESS_TOKEN = "replace this with your access token"
record_id = "replace this with your record"

r = requests.get(f"https://zenodo.org/api/records/{record_id}", params={'access_token': ACCESS_TOKEN})
download_urls = [f['links']['self'] for f in r.json()['files']]
filenames = [f['key'] for f in r.json()['files']]

print(r.status_code)
print(download_urls)

Agora que tenho os urls dos arquivos que desejo baixar, bem como seus nomes (ou seja, a chave), posso simplesmente baixá-los com requests.get e salvá-los em um arquivo:

for filename, url in zip(filenames, download_urls):
    print("Downloading:", filename)
    r = requests.get(url, params={'access_token': ACCESS_TOKEN})
    with open(filename, 'wb') as f:
        f.write(r.content)

Eu tentei isso e funcionou para mim:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-restricted-curl-sh-L26

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