it-swarm.com.de

Laden Sie alle Dateien in einem Pfad auf den Jupyter Notebook-Server herunter

Als Benutzer in einer Klasse, in der Jupyter-Notizbücher für Zuweisungen ausgeführt werden, kann ich über die Weboberfläche auf die Zuweisungen zugreifen. Ich gehe davon aus, dass die Aufgaben irgendwo in meinem persönlichen Bereich auf dem Server gespeichert sind, und daher sollte ich sie herunterladen können. Wie kann ich alle Dateien herunterladen, die sich in meinem persönlichen Benutzerbereich befinden? (z. B. wget)

Hier ist die Pfadstruktur:

https://urltoserver/user/username

Es gibt verschiedene Verzeichnisse: Zuweisungen, Daten usw.

https://urltoserver/user/username/assignments

https://urltoserver/user/username/data

...

Ich möchte alle Ordner (rekursiv) herunterladen. Gerade genug, um das, was ich online sehe, lokal zu starten. Wenn es einige verbotene Ordner gibt, überspringen Sie diese und laden Sie den Rest herunter.

Bitte geben Sie den Befehl genau so an, wie ich es selbst nicht herausfinden konnte (ich habe wget versucht).

22
Ali

Führen Sie diese als separate Zelle in einem Ihrer Notizbücher aus:

!tar chvfz notebook.tar.gz *

Wenn Sie weitere Ordner in der Struktur verdecken möchten, schreiben Sie ../ vor dem * für jeden Schritt des Verzeichnisses. Die Datei notebook.tar.gz wird im selben Ordner wie Ihr Notizbuch gespeichert.

76

Ich nehme an Prof. Andrew Ngs Deeplearning.ai-Programm über Coursera teil. Der Lehrplan verwendet Jupyter Notebooks online. Zusammen mit den Notebooks befinden sich Ordner mit großen Dateien. Folgendes habe ich verwendet, um alle Aufgaben mit den zugehörigen Dateien und Ordnern erfolgreich auf meinen lokalen Windows 10-PC herunterzuladen.

Beginnen Sie mit der folgenden Codezeile, wie in dem obigen Beitrag von Serzan Akhmetov vorgeschlagen:

!tar cvfz allfiles.tar.gz *

Dies erzeugt einen Tarball, der, wenn er klein genug ist, vom Jupyter-Notebook selbst heruntergeladen und mit 7-Zip entpackt werden kann. Dieser Kurs enthält jedoch einzelne Dateien mit einer Größe von 100 MB und Ordner mit Hunderten von Beispielbildern. Der resultierende Tarball ist zu groß, um über den Browser heruntergeladen zu werden.

Fügen Sie also eine weitere Codezeile hinzu, um die Dateien wie folgt in überschaubare Blockgrößen aufzuteilen:

!split -b 50m allfiles.tar.gz allfiles.tar.gz.part.

Dadurch wird das Archiv in mehrere Teile mit einer Größe von jeweils 50 MB (oder Ihrer bevorzugten Größeneinstellung) aufgeteilt. Jeder Teil hat eine Erweiterung wie allfiles.tar.gz.part.xx. Laden Sie jedes Teil wie zuvor herunter.

Die letzte Aufgabe besteht darin, das mehrteilige Archiv zu entpacken. Dies ist mit 7-Zip sehr einfach. Wählen Sie einfach die erste Datei der Serie zum Extrahieren mit 7-Zip aus. Dies ist die Datei mit dem Namen allfiles.tar.gz.part.aa für das verwendete Beispiel. Es werden alle erforderlichen Teile zusammengezogen, solange sie sich in demselben Ordner befinden.

Hoffe, dies trägt zu Serzans hervorragender Antwort bei.

3
Sun Bee

Sie können ein neues Terminal über das Menü "Neu" erstellen und den unter https://stackoverflow.com/a/47355754/8554972 beschriebenen Befehl aufrufen. 

tar cvfz notebook.tar.gz *

Die Datei notebook.tar.gz wird im selben Ordner wie Ihr Notizbuch gespeichert.

2

Am einfachsten ist es, alle Inhalte mit tar zu archivieren. Es gibt jedoch auch eine API zum Herunterladen von Dateien.

GET /files/_FILE_PATH_

Um alle Dateien in einem Ordner abzurufen, können Sie Folgendes verwenden:

GET /api/contents/work

Beispiel:

curl https://server/api/contents?token=your_token
curl https://server/files/path/to/file.txt?token=your_token --output some.file

Quelle: Jupyter Docs

1
Alexander

Ich glaube nicht, dass dies mit wget möglich ist, auch mit der wget -r-Option. Möglicherweise müssen Sie sie einzeln herunterladen (mithilfe der Option "Herunterladen" in der Dashboardansicht (die nur für einzelne, nicht ausgeführte Verzeichnisse verfügbar ist), sofern dies für Sie verfügbar ist.

Es ist jedoch wahrscheinlich, dass Sie sie nicht herunterladen können, da Ihre Schüler, die Zugriff auf die Notebooks selbst haben, unerwünscht sind, wenn Ihre Lehrkraft Grading-Software wie nbgrader verwendet.

0
Louise Davies