web-dev-qa-db-de.com

wie lade ich Dropbox-Dateien mit dem Befehl wget herunter?

Scheint, ich kann Dropbox-Dateien nur mit dem Explorer wie Chrome und Firefox herunterladen. Wenn ich wget zum Herunterladen verwende, erhalte ich eine Datei im HTML-Format. Warum?

Zum Beispiel können Sie diesen Link öffnen

Sie würden den Inhalt dieser Datei nicht erhalten, warum? Folgendes ist Teil von test.txt, um es herunterzuladen, dies ist überhaupt nicht der Inhalt von test.txt.

Ist es also möglich, Dropbox-Dateien mit wget anstatt mit dem Explorer herunterzuladen?

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)                        });
                    } 

Ich kann nicht test.txt mit Befehl erhalten

wget https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.tx


ls -l 
-rw-rw-r-- 1 mirror mirror  30K Sep  6 15:01 test.txt
62
hugemeow

Der Link in Ihrer Frage ist nicht der Link zur Datei, sondern ein Link zur Dropbox-Seite dieser Datei.
Wenn Sie wget zum Herunterladen verwenden möchten, kopieren Sie den Link zum direkten Herunterladen aus dem Menü, das beim Drücken der Download-Taste nach rechts angezeigt wird.

In meinem Fall hat das gut funktioniert. Manchmal beziehen sich Probleme beim Herunterladen von Links von außerhalb des Browsers jedoch auf andere Parameter als den Link selbst. Ein häufiges Element, das beim einfachen Kopieren des Links nicht vorhanden ist, sind die Website-Cookies.

Versuchen Sie dieses coole FF-Add-on , um die richtigen wget-Links zu erhalten

Und natürlich können Sie den Dropbox-Client auch installieren, insbesondere wenn es sich um eine bekannte und keine Gelegenheitsarbeitsstation handelt. Dies ist der einfachste Weg. Lassen Sie Ihre Box einfach Teil Ihrer Dateistruktur sein und vermeiden Sie komplizierte Downloads.
Siehe diesen askubuntu.com-Beitrag und die Dropbox Download-Seite.

17
amotzg

Füge einfach ?dl=1 am Ende des Links hinzu! Zum Beispiel: https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

Dadurch können Sie die betreffende Datei problemlos abrufen, ohne der Datei etwas hinzuzufügen.

Eine Sache noch! Wenn Sie die Datei an einem anderen Ort speichern möchten, verwenden Sie die -O -Option wie diese

wget -O /root/Desktop/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"

Und wenn Sie ein bisschen GUI haben möchten, können Sie zenity verwenden, um den Speicherort zu markieren, an den die Datei heruntergeladen werden soll!

Hier ist ein Beispielcode:

#!/bin/bash
dir=$(zenity --file-selection --directory)
wget -O $dir/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"
107
Ismael Segui

Dropbox hat es so geändert, dass wget das Richtige tut und die Datei anstelle des Interstitials abruft.

Verwenden Sie "Link teilen", um den direkten Link zur Datei abzurufen.

14
Ryan

Ich habe diese Frage gesehen und dachte, dies könnte jemandem helfen, der versucht, viele Dateien gleichzeitig herunterzuladen.

Hier ist ein kleines Windows CMD/Batch-Skript, das Sie verwenden können.
Es kann leicht angepasst werden, um unter einer Bash Shell (Mac/Linux/etc) zu arbeiten.
Es benutzt CURL . WGET sollte auch mit kleinen Anpassungen funktionieren.

1. Installieren Sie Curl für Windows.

2. Fügen Sie die einzelnen SHARED-Links in eine Textdatei ein (1 pro Zeile).

3. Passen Sie alle Parameter "? Dl = 0" in Ihrer Textdatei auf "? Dl = 1" an und speichern Sie sie.

4. Kopieren Sie das folgende Skript in eine Datei mit dem Namen 'geturllist.cmd' (oder nach Ihrer Wahl)

5. Öffnen Sie eine CMD-Eingabeaufforderung und führen Sie das CMD-Skript aus.

Heruntergeladene Dateien werden im aktuellen Arbeitsverzeichnis angezeigt, aus dem Sie das Skript ausgeführt haben.

HINWEIS:
Sie müssen SHARED LINKS ordnungsgemäß formatiert haben, die "Jeder mit dem Link" öffnen kann. Dieses Skript funktioniert NICHT mit kennwortgeschützten Links oder Freigaben, die auf einem Dropbox-Login/einer Dropbox-E-Mail basieren.
HINWEIS:
Wenn die einzelne Datei oder Dateigruppe (automatisch komprimiert) eine bestimmte Größe überschreitet, schlägt der Fehler fehl. ("Die (Zip-) Datei ist zu groß. Bitte fügen Sie sie Ihrer Dropbox hinzu.") In diesem Fall müssen Sie das tun, was es verspricht. Dieses Skript funktioniert nicht, da der Freigabelink nicht direkt heruntergeladen werden kann.

Beispieltextdatei:
("RandomShareCharacters/Here" wird durch das ersetzt, was im Share-Link steht.)

 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.

Beispiel Verwendung:

geturllist.cmd X:\somepath\dropbox.txt

2
bshea

Sie werden etwas mit dem Namen "Datei" oder einen seltsamen Namen bekommen ... Wenn Sie diese Datei einfach in das umbenennen, was Sie wollen, wird dies der Trick sein. Die tatsächlich heruntergeladene Datei ist die gewünschte Datei mit dem seltsamen Namen und ohne das Dateitypattribut.

0
Kruno