Zenodo: Utilice Commend Line para descargar el archivo de Zenode

Creado en 16 oct. 2019  ·  8Comentarios  ·  Fuente: zenodo/zenodo

Lamento molestarlo, pero me he enfrentado a un problema durante mucho tiempo. Sin embargo, no es estable para mí descargar el gran conjunto de datos de Zenode usando el navegador. Así que me viene a la mente el uso de 'wget', pero cuando sigo el enfoque proporcionado en Problemas , he fallado.

Desde el número anterior, uso:

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

Obtuve la API REST:

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

Pero obtuve 404 como si no usara la API REST.

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

¿Podrías ayudarme? ¡Gracias!

Comentario más útil

Probé esto y funcionó para mí:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-restricted-curl-sh-L26

Todos 8 comentarios

Dado que los archivos de este registro están configurados para acceso restringido, no están disponibles públicamente, para acceder a ellos necesitaría un token de acceso para verificar su identidad, que puede crear aquí o debe seguir el procedimiento que se muestra.

Cerrando esto ya que no es un error.

¿Cómo usar el token privado? ¿Alguna idea? Muchas gracias

Yo también lo necesito, ¿alguien lo sabe?

yo también tengo curiosidad

@thesby @keunwoochoi

Estos son los pasos para descargar los archivos.
desde la propia línea de comandos

1- Adquirir el token personal (que probablemente ya tengas)
2- ejecuta los siguientes comandos

curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372?token=<your token here>"
reemplace ese número de registro 1117372 con el correspondiente

Una vez que haya generado el archivo de cookies,
ahora solo ingrese a su navegador, haga clic derecho en el botón de descarga y copie su URL

debería verse como https://zenodo.org/record/1117372/files/musdb18.zip?download=1

ahora ,

simplemente ejecute este comando en su terminal,

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

reemplace el enlace de descarga con su URL de descarga particular
y debería empezar a descargarse,

y reemplace el nombre de archivo en --output musdb18.zip

con el nombre de archivo apropiado que desee

este es el método que me funciona,

Avísame si tienes algún problema,
Qué tengas un lindo día !

Tenía problemas con el enfoque de las cookies, así que en su lugar utilicé el enfoque de la API de zenodo (en Python).

Primero, creé tokens de acceso personal (NO aplicaciones de desarrollador) y lo asigné a mi variable ACCESS_TOKEN . Luego consulté todos los archivos disponibles para descargar en mi registro:

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)

Ahora que tengo las URL de los archivos que quiero descargar, así como su nombre (es decir, la clave), puedo descargarlos con requests.get y guardarlos en un archivo:

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)

Probé esto y funcionó para mí:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-restricted-curl-sh-L26

¿Fue útil esta página
0 / 5 - 0 calificaciones