Zenodo: استخدم Commend Line لتنزيل الملف من Zenode

تم إنشاؤها على ١٦ أكتوبر ٢٠١٩  ·  8تعليقات  ·  مصدر: zenodo/zenodo

آسف على إزعاجك ، لكني واجهت مشكلة منذ فترة طويلة. ومع ذلك ، ليس من المستقر بالنسبة لي تنزيل مجموعة البيانات الكبيرة من Zenode باستخدام المتصفح. لذا يتبادر إلى ذهني استخدام "wget" ، ولكن عندما أتبع النهج الوارد في " المشكلات" ، فقد فشلت.

من الإصدار السابق ، أستخدم:

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

حصلت على واجهة برمجة تطبيقات REST:

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

لكنني حصلت على 404 تمامًا مثل عدم استخدام واجهة برمجة تطبيقات REST.

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

هل يمكن أن تساعدني؟ شكرا!

التعليق الأكثر فائدة

لقد جربت هذا وعملت معي:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-limited-curl-sh-L26

ال 8 كومينتر

نظرًا لأن ملفات هذا السجل مضبوطة على وصول مقيد ، فهي غير متاحة للجمهور ، وللوصول إليها ستحتاج إلى رمز وصول للتحقق من هويتك ، والذي يمكنك إنشاؤه هنا أو يجب عليك اتباع الإجراء المعروض.

إغلاق هذا لأنه ليس خطأ.

كيفية استخدام الرمز المميز؟ اي فكرة؟ ثاكس كثيرا

أنا في حاجة إليها أيضا ، أي شخص يعرف؟

أنا فضولي أيضًا

تضمين التغريدة

فيما يلي خطوات تنزيل الملفات
من سطر الأوامر نفسه

1- الحصول على الرمز الشخصي (الذي ربما يكون لديك بالفعل)
2- قم بتشغيل الأوامر التالية

curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372?token=<your token here>"
استبدل الرقم القياسي 1117372 بالسجل المناسب

بمجرد إنشاء ملف تعريف الارتباط ،
الآن فقط ادخل إلى متصفحك ، وانقر بزر الماوس الأيمن على زر التنزيل وانسخ عنوان url الخاص به

يجب أن يبدو مثل https://zenodo.org/record/1117372/files/musdb18.zip؟

الآن ،

فقط قم بتشغيل هذا الأمر على جهازك الطرفي ،

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

استبدل رابط التنزيل بعنوان URL الخاص بالتنزيل
ويجب أن يبدأ التنزيل ،

واستبدل اسم الملف على - إخراج musdb18.zip

باسم الملف المناسب الذي تريده

هذه هي الطريقة التي تناسبني ،

اسمحوا لي أن أعرف إذا كنت تواجه أي مشاكل ،
أتمنى لك يوما عظيما !

كنت أواجه مشكلة في نهج ملفات تعريف الارتباط ، لذلك استخدمت نهج zenodo API (في Python) بدلاً من ذلك.

أولاً ، قمت بإنشاء رموز وصول شخصية (وليس تطبيقات المطور) ، وقمت بتعيينها إلى المتغير ACCESS_TOKEN . ثم سألت عن جميع الملفات المتاحة للتنزيل في سجلي:

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)

الآن بعد أن أصبح لدي عناوين url للملفات التي أريد تنزيلها بالإضافة إلى أسمائها (أي مفتاح) ، يمكنني فقط تنزيلها باستخدام requests.get وحفظها في ملف:

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)

لقد جربت هذا وعملت معي:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-limited-curl-sh-L26

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات