Подтвердить что ты не робот

Используйте curl для загрузки папки Dropbox через общую ссылку (не общедоступную ссылку)

Dropbox упрощает программную загрузку одного файла с помощью curl (EX: curl -O https://dl.dropboxusercontent.com/s/file.ext). Это немного сложнее для папки (обычная папка каталога, а не zipped). Общая ссылка для папки, в отличие от файла, не привязывается непосредственно к zipped-папке (Dropbox автоматически застегивает папку перед ее загрузкой). Казалось бы, вы можете просто добавить ?dl=1 в конец ссылки, так как это приведет к прямому запуску загрузки в браузере. Это, однако, указывает на промежуточный html-документ, который перенаправляется на фактическую папку zip и, похоже, не работает с завитком. Есть ли способ использовать завиток для загрузки папки по общей ссылке? Я понимаю, что лучшим решением было бы использовать Dropbox api, но для этого проекта важно сохранить его как можно проще. Кроме того, решение должно быть включено в оболочку bash script.

4b9b3361

Ответ 1

Это кажется возможным с помощью curl с помощью опции -L. Это заставляет завиток следить за перенаправлением. Кроме того, важно указать имя вывода с расширением .zip, поскольку по умолчанию будет произвольное буквенно-цифровое имя без расширения. Наконец, не забудьте добавить ?dl=1 в конец ссылки. Без него завиток никогда не достигнет страницы переадресации.

curl -L -o newName.zip https://www.dropbox.com/sh/[folderLink]?dl=1

Ответ 2

  1. Следуйте за перенаправлениями (используйте -L). Ваша непосредственная проблема заключается в том, что Curl не следует перенаправлениям.

  2. Установите имя файла. (Необязательный)

    • 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) для получения дополнительной информации.