Dropbox упрощает программную загрузку одного файла с помощью curl (EX: curl -O https://dl.dropboxusercontent.com/s/file.ext
). Это немного сложнее для папки (обычная папка каталога, а не zipped). Общая ссылка для папки, в отличие от файла, не привязывается непосредственно к zipped-папке (Dropbox автоматически застегивает папку перед ее загрузкой). Казалось бы, вы можете просто добавить ?dl=1
в конец ссылки, так как это приведет к прямому запуску загрузки в браузере. Это, однако, указывает на промежуточный html-документ, который перенаправляется на фактическую папку zip и, похоже, не работает с завитком. Есть ли способ использовать завиток для загрузки папки по общей ссылке? Я понимаю, что лучшим решением было бы использовать Dropbox api, но для этого проекта важно сохранить его как можно проще. Кроме того, решение должно быть включено в оболочку bash script.
Используйте curl для загрузки папки Dropbox через общую ссылку (не общедоступную ссылку)
Ответ 1
Это кажется возможным с помощью curl с помощью опции -L
. Это заставляет завиток следить за перенаправлением. Кроме того, важно указать имя вывода с расширением .zip, поскольку по умолчанию будет произвольное буквенно-цифровое имя без расширения. Наконец, не забудьте добавить ?dl=1
в конец ссылки. Без него завиток никогда не достигнет страницы переадресации.
curl -L -o newName.zip https://www.dropbox.com/sh/[folderLink]?dl=1
Ответ 2
-
Следуйте за перенаправлениями (используйте
-L
). Ваша непосредственная проблема заключается в том, что Curl не следует перенаправлениям. -
Установите имя файла. (Необязательный)
- Dropbox уже отправляет заголовок Content-Disposition со своим именем Dropbox.
Нет смысла указывать имя файла, если вы используете правильные флаги скручивания. - И наоборот, вы можете форсировать имя файла, используя что-то по вашему выбору.
- Dropbox уже отправляет заголовок Content-Disposition со своим именем Dropbox.
Используйте одну из этих команд:
curl https://www.dropbox.com/sh/AAbbCCEeFF123?dl=1 -O -J -L
Сохраните/запишите удаленное имя файла (-O
, -J
) и -J
за любыми переадресациями (-L
).
- Эта строка работает как для отдельных файлов, так и для целых папок.
- Папки будут автоматически сохраняться в формате
.zip
(в зависимости от имени папки). - Не забудьте изменить параметр
?dl=0
на?dl=1
(см. Комментарии).
ИЛИ ЖЕ:
curl https://www.dropbox.com/sh/AAbbCCEeFF123?dl=1 -L -o [filename]
Выполните перенаправление (-L
) и -L
имя файла (-O
) по вашему выбору.
ПРИМЕЧАНИЕ. Использование флага -J
в целом:
ПРЕДУПРЕЖДЕНИЕ. Будьте осторожны при использовании этой опции, особенно в Windows. Мошеннический сервер может отправить вам имя DLL или другого файла, который может быть автоматически загружен Windows или каким-либо сторонним программным обеспечением.
Пожалуйста, обратитесь к: https://curl.haxx.se/docs/manpage.html#OPTIONS (см. -O, -J, -L, -O) для получения дополнительной информации.