62

Кажется, я могу загружать только файлы Dropbox, используя проводник, такой как Chrome и Firefox. Если я использую wget для загрузки, я получу файл в формате html. Зачем?

Например, вы можете открыть эту ссылку

Вы не получили бы содержимое этого файла, почему? Следующее является частью test.txt для его загрузки, это вовсе не содержимое test.txt.

Так можно ли скачивать файлы Dropbox с помощью wget а не explorer?

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

6 ответов6

103

Просто добавить ?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"
17

Ссылка в вашем вопросе не является ссылкой на файл, это ссылка на страницу Dropbox этого файла.
Если вы хотите использовать wget для его загрузки, вам следует скопировать ссылку для прямой загрузки из меню, которое открывается при нажатии кнопки загрузки справа.

В моем случае это работало нормально. Однако иногда проблемы с загрузкой ссылок извне браузера связаны с параметрами, отличными от самой ссылки. Обычным элементом, который не существует, когда вы просто копируете ссылку, являются файлы cookie сайта.

Попробуйте это классное дополнение FF, чтобы получить правильные ссылки на wget

А также, особенно если мы говорим об известной рабочей станции, а не случайной, вы, конечно, можете установить клиент Dropbox. Это будет самый простой способ, просто пусть ваш ящик будет частью вашей файловой структуры и избавит от необходимости сложных загрузок.
См. Этот пост askubuntu.com и страницу загрузки Dropbox .

14

Dropbox изменил его так, что wget будет делать правильно и извлекать файл, а не вставлять.

Используйте "Share Link", чтобы получить прямую ссылку на файл.

1

Видел этот вопрос и думал, что это может помочь кому-то, пытающемуся загрузить много файлов одновременно.

Вот небольшой Windows CMD/Batch скрипт, который вы можете использовать.
Его можно легко настроить для работы под оболочкой Bash (Mac/Linux/etc).
Он использует CURL. WGET также должен работать с некоторыми незначительными изменениями.

1. Установите Curl для Windows.

2. Поместите отдельные SHARED ссылки в текстовый файл (по 1 на строку).

3. Отрегулировать все "?dl = 0 "параметр (ы) в вашем текстовом файле для"?дл = 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

0

Вы получите что-то с именем "файл" или какое-то странное имя ... Просто переименуйте этот файл в любое, что вам нужно. Фактически загруженный файл - это файл, который вы хотели получить только со странным именем и без атрибута типа файла.

-2

Самый простой и самый гарантированный метод для этого типа загрузок - использовать инструменты разработчика 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 и наслаждайтесь загрузкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .