Zenodo: Unterstützung einer einfachen Download-URL für Archive

Erstellt am 23. Okt. 2018  ·  4Kommentare  ·  Quelle: zenodo/zenodo

Derzeit scheinen URLs für heruntergeladene Archive indirekt zu sein und enthalten keine Dateinamenerweiterung (z. B. wget) - idealerweise sollte der Dateiname des Archivs beim Herunterladen mit einem Tool auf der Befehlszeile erhalten bleiben. Kann man das ändern?

Hilfreichster Kommentar

Danke @lnielsen. Das Curling von api/records/record_id funktionierte zum Abrufen von Wget-fähigen URLs. Es wäre hilfreich, diese abrufbaren URLs nach Möglichkeit direkt auf der Website anzuzeigen.

Alle 4 Kommentare

Danke für die Meldung. AFAIK wird dies bereits unterstützt. Beispiel:

$ wget https://zenodo.org/api/files/4f53dd1f-df5f-4a9c-8b46-6eacfc4b8840/results.zip
--2018-10-24 08:33:10--  https://zenodo.org/api/files/4f53dd1f-df5f-4a9c-8b46-6eacfc4b8840/results.zip
Resolving zenodo.org... 137.138.76.77
Connecting to zenodo.org|137.138.76.77|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 309980977 (296M) [application/octet-stream]
Saving to: 'results.zip'

Hast du ein Beispiel, wo es nicht so ist?

Hallo @lnielsen ,

https://zenodo.org/record/51405
Dieser Datensatz enthält beispielsweise Dateien mit dem Format
https://zenodo.org/record/<record number>/files/<filename>?download=1 ,
was anders ist als die
https://zenodo.org/api/files/<UID>/<filename>
Format, das Sie oben angeben. In Bezug auf die Anfrage von @bbarker ist die Verwendung wget für Ersteres nicht möglich.

Das kann Unwissenheit meinerseits sein. Gibt es eine Methode, die mir fehlt, um den Permalink im API-Stil zu erhalten?

@benjaminhwilliams In beiden Fällen ist es das gleiche Stück Code, das die Datei bereitstellt, der einzige Unterschied besteht darin, dass Sie eine nette menschliche Fehlermeldung auf https://zenodo.org/record/<record number>/files/<filename>?download=1 für zB 404-Seiten erhalten.

In Bezug auf wget und die ?download=1 dann ist es meiner Meinung nach wget Fehlverhalten. Sie können jedoch einfach die ?download=1 entfernen, um wget $ zu erfüllen.

wget verhält sich falsch, weil wir tatsächlich den richtigen Dateinamen in den HTTP-Headern senden. Siehe unten:

$ curl -I "https://zenodo.org/record/51405/files/l-cyst_01.tar.gz?download=1"
HTTP/1.1 200 OK
...
Content-Disposition: attachment; filename=l-cyst_01.tar.gz
...

Wenn Sie jedoch automatisierte Downloads benötigen, verwenden Sie besser unsere REST-API, wo Sie direkte Dateilinks erhalten:

$ curl https://zenodo.org/api/records/51405
{
  ...
  "files": [
    {
      "bucket": "cbc7d513-2359-47fe-a9c6-f826de7776c5",
      "checksum": "md5:780a7b23320307ae8b6cf2d6e99ade1f",
      "key": "l-cyst_fast_04.tar.gz",
      "links": {
        "self": "https://zenodo.org/api/files/cbc7d513-2359-47fe-a9c6-f826de7776c5/l-cyst_fast_04.tar.gz"
      },
      "size": 140654635,
      "type": "gz"
    },
    {
      "bucket": "cbc7d513-2359-47fe-a9c6-f826de7776c5",
      "checksum": "md5:c04800ec8ffaaad867ee54a3a1688ac5",
      "key": "l-cyst_very_fast_01.tar.gz",
      "links": {
        "self": "https://zenodo.org/api/files/cbc7d513-2359-47fe-a9c6-f826de7776c5/l-cyst_very_fast_01.tar.gz"
      },
      "size": 63254814,
      "type": "gz"
    },
  ...
}

Danke @lnielsen. Das Curling von api/records/record_id funktionierte zum Abrufen von Wget-fähigen URLs. Es wäre hilfreich, diese abrufbaren URLs nach Möglichkeit direkt auf der Website anzuzeigen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen