Загрузите все файлы в пути на ноутбуке Jupyter

Как пользователь в классе, который запускает Jupyter notebooks для назначений, у меня есть доступ к назначениям через веб-интерфейс. Я предполагаю, что присвоения хранятся где-то в моем личном пространстве на сервере, и поэтому я должен иметь возможность их загружать. Как загрузить все файлы, которые находятся в моем личном пространстве пользователя? (например, wget)

Здесь структура пути:

https://urltoserver/user/username

Существует несколько каталогов: назначения, данные и т.д.

https://urltoserver/user/username/assignments

https://urltoserver/user/username/data

...

Я хочу загрузить все папки (рекурсивно). Достаточно того, что я могу запускать все, что вижу в Интернете на местном уровне. Если есть некоторые запрещенные папки, тогда о'кей, пропустите их и скачайте остальные.

Пожалуйста, укажите команду точно так, как я сам не мог понять (я пробовал wget)

Ответ 1

Попробуйте запустить это как отдельную ячейку в одном из ваших ноутбуков:

!tar chvfz notebook.tar.gz *

Если вы хотите закрыть больше папок вверх по дереву, напишите ../ перед * для каждого шага вверх по каталогу. Файл notebook.tar.gz будет сохранен в той же папке, что и ваша записная книжка.

Ответ 2

Вы можете создать новый терминал из меню "Создать" и вызвать команду, описанную в fooobar.com/questions/723690/...:

tar cvfz notebook.tar.gz *

Файл notebook.tar.gz будет сохранен в той же папке, что и ваш ноутбук.

Ответ 3

Самый простой способ - заархивировать весь контент с помощью tar, но есть и API для загрузки файлов.

GET /files/_FILE_PATH_

Чтобы получить все файлы в папке, вы можете использовать:

GET /api/contents/work

Пример:

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

Источник: Jupyter Docs

Ответ 4

Я не думаю, что это возможно с wget, даже с опцией wget -r. Возможно, вам придется загружать их по отдельности (с помощью параметра "Загрузка" в представлении панели мониторинга (который доступен только для одиночных, не каталогов, не работающих элементов ноутбука), если это доступно вам.

Однако, скорее всего, вы не сможете их загрузить, поскольку, если ваш учитель использует программное обеспечение для оценки, например nbgrader, то ученики, имеющие доступ к ноутбукам, нежелательны, поскольку ноутбуки могут содержать информацию об ответах.

Ответ 5

Я беру программу профессора Эндрю Нг Deeplearning.ai через Coursera. В учебной программе используются ноутбуки Jupyter онлайн. Наряду с записными книжками находятся папки с большими файлами. Вот что я использовал, чтобы успешно загрузить все задания со связанными файлами и папками на мой локальный ПК с Windows 10.

Начните со следующей строки кода, как было предложено в посте Серзана Ахметова выше:

!tar cvfz allfiles.tar.gz *

В результате получается тарбол, который, если он достаточно мал, может быть загружен с самого ноутбука Jupyter и распакован с использованием 7-Zip. Тем не менее, этот курс имеет отдельные файлы размером 100 МБ и папки со 100 образцами изображений. Полученный архив слишком велик для загрузки через браузер.

Поэтому добавьте еще одну строку кода, чтобы разбить файлы на управляемые размеры блоков следующим образом:

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

Это разделит архив на несколько частей, каждая размером 50 Мб (или предпочитаемого вами размера). Каждая часть будет иметь расширение, как allfiles.tar.gz.part.xx. Загрузите каждую часть как прежде.

Последняя задача - распаковать архив из нескольких частей. Это очень просто с 7-Zip. Просто выберите первый файл в серии для извлечения с 7-Zip. Это файл с именем allfiles.tar.gz.part.aa для используемого примера. Он соберет все необходимые детали, если они находятся в одной папке.

Надеюсь, что это поможет добавить в Serzan отличный ответ выше.

Ответ 6

Попробуйте сначала получить каталог:

import os
os.getcwd()

И затем используйте snipped from Как создать zip-архив каталога. Вы можете загрузить полный каталог, запустив его. Удачи!