Zenodo: Utilisez Commend Line pour télécharger le fichier depuis Zenode

Créé le 16 oct. 2019  ·  8Commentaires  ·  Source: zenodo/zenodo

Désolé de vous déranger, mais je suis confronté à un problème depuis longtemps. Cependant, il n'est pas stable pour moi de télécharger le grand ensemble de données de Zenode à l' aide d'un navigateur. Donc, l'utilisation de « wget » me vient à l'esprit, mais lorsque je suis l'approche fournie dans Problèmes , j'ai échoué.

À partir de l'ancien numéro, j'utilise :

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

J'ai l'API REST :

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

Mais j'ai eu 404 comme si je n'utilisais pas l'API REST.

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

Pourrais-tu m'aider? Merci!

Commentaire le plus utile

J'ai essayé ceci et cela a fonctionné pour moi:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-restricted-curl-sh-L26

Tous les 8 commentaires

Étant donné que les fichiers de cet enregistrement sont configurés pour un accès restreint, ils ne sont pas accessibles au public, pour y accéder, vous auriez besoin d'un jeton d'accès pour vérifier votre identité, que vous pouvez créer ici ou vous devez suivre la procédure affichée .

Fermez ceci car ce n'est pas une erreur.

comment utiliser le jeton privated ? Une idée? Merci beaucoup

J'en ai besoin aussi, quelqu'un sait-il ?

je suis curieux aussi

@thesby @keunwoochoi

Voici les étapes pour télécharger les fichiers
à partir de la ligne de commande elle-même

1- Acquérir le jeton personnel (que vous possédez probablement déjà)
2- exécuter les commandes suivantes

curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372?token=<your token here>"
remplacez ce numéro d'enregistrement 1117372 par celui qui vous convient

Une fois que vous avez généré le fichier cookie,
maintenant il suffit d'aller sur votre navigateur, faites un clic droit sur le bouton de téléchargement et copiez son URL

cela devrait ressembler à https://zenodo.org/record/1117372/files/musdb18.zip?download=1

à présent ,

exécutez simplement cette commande sur votre terminal,

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

remplacez le lien de téléchargement par votre URL de téléchargement particulière
et il devrait commencer à télécharger,

et remplacez le nom de fichier sur --output musdb18.zip

avec le nom de fichier approprié que vous voulez

c'est la méthode qui marche pour moi,

Faites-moi savoir si vous rencontrez des problèmes,
Passe une bonne journée !

J'avais des problèmes avec l'approche des cookies, j'ai donc utilisé à la place l'approche de l'API zenodo (en Python).

Tout d'abord, j'ai créé un jeton d'accès personnel (PAS d'applications de développeur) et je l'ai affecté à ma variable ACCESS_TOKEN . Ensuite, j'ai interrogé tous les fichiers disponibles en téléchargement dans mon dossier :

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)

Maintenant que j'ai les URL des fichiers que je veux télécharger ainsi que leur nom (c'est-à-dire la clé), je peux simplement les télécharger avec requests.get et les enregistrer dans un fichier :

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)

J'ai essayé ceci et cela a fonctionné pour moi:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-restricted-curl-sh-L26

Cette page vous a été utile?
0 / 5 - 0 notes