Как скачать файлы Dropbox с помощью команды Wget?
Кажется, я могу загружать только файлы Dropbox, используя проводник, такой как Chrome и Firefox. Если я использую wget для загрузки, я получу файл в формате html. Зачем?
Например, вы можете открыть эту ссылку
https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt> с проводником, но если вы используете
wget https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt
Вы не получили бы содержимое этого файла, почему? Следующее является частью test.txt для его загрузки, это вовсе не содержимое test.txt.
Так можно ли скачивать файлы Dropbox используя wget
а не исследователь?
document.observe('script:loaded', function() {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0) });
} else if (window.jQuery) {
jQuery(function () {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0) });
}
Я не могу получить test.txt с помощью команды
wget https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.tx
ls -l
-rw-rw-r-- 1 mirror mirror 30K Sep 6 15:01 test.txt
7 ответов
Ссылка в вашем вопросе не является ссылкой на файл, это ссылка на страницу Dropbox этого файла.
Если вы хотите использовать wget
чтобы скачать его, вам нужно скопировать ссылку для прямой загрузки из меню, которое выпадает при нажатии кнопки загрузки справа.
В моем случае это работало нормально. Однако иногда проблемы с загрузкой ссылок извне браузера связаны с параметрами, отличными от самой ссылки. Обычным элементом, который не существует, когда вы просто копируете ссылку, являются файлы cookie сайта.
Попробуйте это классное дополнение FF, чтобы получить правильный wget
связи
А также, особенно если мы говорим об известной рабочей станции, а не случайной, вы, конечно, можете установить клиент Dropbox. Это будет самый простой способ, просто пусть ваш ящик будет частью вашей файловой структуры и избавит от необходимости сложных загрузок.
Смотрите этот пост askubuntu.com и страницу загрузки Dropbox.
Просто добавь ?dl=1
в конце ссылки! Например: https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1
Это должно дать вам точный поиск файла без добавления чего-либо в файл.
Еще кое-что! Если вы хотите сохранить файл в другом месте, используйте -O
вариант как этот
wget -O /root/Desktop/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"
И если вы хотите иметь немного GUI, вы можете использовать zenity
чтобы отметить место, куда файл будет загружен!
Вот пример кода:
#!/bin/bash
dir=$(zenity --file-selection --directory)
wget -O $dir/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"
Dropbox изменил его так, чтобы wget
будет делать правильные вещи и извлекать файл вместо промежуточного.
Используйте "Share Link" для получения прямой ссылки на файл.
Видел этот вопрос и думал, что это может помочь кому-то, пытающемуся загрузить много файлов одновременно.
Вот небольшой Windows CMD/Batch скрипт, который вы можете использовать.
Его можно легко настроить для работы под оболочкой Bash (Mac/Linux/etc).
Он использует CURL. WGET также должен работать с некоторыми незначительными изменениями.
1. Установите Curl для Windows.
2. Поместите отдельные ссылки SHARED в текстовый файл (по 1 на строку).
3. Настройте все параметры "? Dl=0" в текстовом файле на "? Dl=1" и сохраните.
4. Скопируйте приведенный ниже скрипт в файл с именем 'geturllist.cmd' (или по вашему выбору).
5. Откройте приглашение CMD и выполните сценарий CMD.
Загруженные файлы появятся в текущем рабочем каталоге, из которого вы выполнили скрипт.
НОТА:
Вы должны правильно отформатировать ОБЩИЕ ССЫЛКИ, которые может открыть "Любой, у кого есть ссылка". Этот скрипт НЕ работает с защищенными паролем ссылками или общими ресурсами, основанными на логине / электронной почте Dropbox.
НОТА:
Если размер одного файла или группы файлов (с автоматическим заархивированием) превышает определенный размер, произойдет сбой с ошибкой ("Файл (zip) слишком велик. Пожалуйста, добавьте его в свой Dropbox."). В этом случае вы должны сделать, как говорится.. этот скрипт не будет работать, потому что ссылка для совместного использования не может быть загружена напрямую.
Пример текстового файла:
("RandomShareCharacters / Here" будет заменено тем, что написано в ссылке "Поделиться")
https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
geturllist.cmd:
@echo off
set count=0
setlocal ENABLEDELAYEDEXPANSION
IF [%1]==[] GOTO BLANK
SET PARAMETER=%1
SET _PARAMETER=%PARAMETER:~0,2%
IF [%1]==[/?] GOTO HELP
IF [%1]==[--help] GOTO HELP
IF %_PARAMETER%==-h GOTO HELP
IF EXIST %1 (
for /f "delims=" %%u in (%1) do (
set /a count=count+1
curl -kL "%%u" -O -J
REM For other share sites:
REM (ZIP EXAMPLE) if no filename type header sent:
REM > curl -kL "%%u" -o "!count!.zip"
REM > echo "!count!.zip"
REM Will download file(s) called 1.zip, 2.zip, etc.
)
) ELSE (
GOTO BLANK
)
GOTO DONE
:HELP
ECHO.
ECHO Usage:
ECHO.
ECHO geturllist [path]\[filename]
ECHO.
ECHO.
ECHO Required Parameters:
ECHO.
ECHO [filename] A text file with one url per line
ECHO -h Help
ECHO.
GOTO DONE
:BLANK
ECHO.
ECHO Error: no input file found
:HELPMSG
ECHO.
ECHO Try -h for Help
:DONE
ECHO.
ECHO Exiting.
ECHO.
Пример использования:
geturllist.cmd X:\somepath\dropbox.txt
На GitHub есть скрипт Python, который выполняет это:
https://github.com/dpdornseifer/dropbox_download
Также сервер Dropbox не поддерживает возобновление передачи.
Кажется, дропбокс поддерживает использование wget в качестве клиента и автоматически перенаправляет на нужный файл. Или, возможно, wget просто следует за перенаправлениями?
Вы получите что-то с именем "файл" или какое-то странное имя... Просто переименование этого файла в любое, что вы хотите, поможет. Фактически загруженный файл - это файл, который вы хотели получить только со странным именем и без атрибута типа файла.
Самый простой и самый гарантированный метод для этого типа загрузок - использовать инструменты разработчика Google Chrome.
- Нажмите F12, чтобы открыть инструменты разработчика
- Перейти на вкладку сети
- Нажмите на ссылку для загрузки, чтобы начать загрузку
- Найти событие загрузки в сети событий
Щелкните правой кнопкой мыши по строке и выберите "Копировать как cURL (bash)" или окна, если хотите
URL будет выглядеть так:
curl "http://yoururl.com/yourfile" -H "Pragma: no-cache" -H "Origin: http://yoururl.com" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: en-US;q=0.8,en;q=0.6,fr;q=0.4" -H "User-Agent: Mozilla/5.0 bla bla" -H "Content-Type: text/plain;charset=UTF-8" -H "Accept: */*" -H "Cache-Control: max-age=0" -H "Referer: http://yoururl.com/downloadpage" -H "Cookie: e07214fb60a1a; _ga=98987; " -H "Connection: keep-alive"
замещать
curl
сwget
- замещать
-H "some headers"
с--header="some headers"
- Вставьте это в окно bash и добавьте
-o
параметр. (Если вы не добавите этот параметр, вывод будет выведен на консоль. - Нажмите Enter и наслаждайтесь загрузкой.