cara mengunduh file dropbox menggunakan perintah wget?

72

Sepertinya saya hanya dapat mengunduh file-file dropbox menggunakan explorer seperti chrome dan firefox. Jika saya menggunakan wget untuk mengunduh, maka saya akan mendapatkan file yang dalam format html. Mengapa?

Misalnya Anda dapat membuka tautan ini

Anda tidak akan mendapatkan konten dari file ini, mengapa? Berikut ini adalah bagian dari test.txt untuk mengunduhnya, ini bukan konten dari test.txt sama sekali.

Jadi mungkinkah mengunduh file Dropbox menggunakan wgetdaripada 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)                        });
                    } 

Saya tidak bisa mendapatkan test.txt dengan perintah

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


ls -l 
-rw-rw-r-- 1 mirror mirror  30K Sep  6 15:01 test.txt
hugemeow
sumber
Pertanyaan bodoh: apakah Anda masuk ke DropBox ketika Anda mencoba mengunduh menggunakan peramban?
1
Menggunakan wgettautan Anda mengambil test.txt(berisi "tes" 4 byte) baik-baik saja di sisi saya. Mungkin ada sesuatu dalam diri Anda .wgetrcyang menyebabkan ini?
jjlin
@ jjlin apa perintahmu? saya tambahkan di atas
hugemeow
5
Saya menggunakan wget --no-check-cert https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt. Itu bekerja dengan baik untuk saya, tetapi jika Anda ingin memaksakan unduhan, Anda dapat mempertimbangkan untuk mencoba wget --no-check-cert 'https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1'sebagai gantinya (perhatikan ?dl=1parameter kueri).
jjlin
@jjlin jadi mungkin diperlukan skrip jika saya ingin mengunduh file dari dropbox :)
hugemeow

Jawaban:

21

Tautan dalam pertanyaan Anda bukan tautan ke file, adalah tautan ke halaman Dropbox dari file ini.
Jika Anda ingin menggunakannya wgetuntuk mengunduhnya, Anda harus menyalin tautan untuk mengarahkan unduhan dari menu yang jatuh saat menekan tombol unduh ke kanan.

Dalam kasus saya, itu bekerja dengan baik. Namun, terkadang masalah dalam mengunduh tautan dari luar peramban terkait dengan parameter selain tautan itu sendiri. Elemen umum yang tidak ada ketika Anda cukup menyalin tautan adalah cookie situs.

Coba add-on FF keren ini untuk mendapatkan wgettautan yang benar

Dan juga, terutama jika kita berbicara tentang workstation yang dikenal dan bukan yang kasual, Anda tentu saja dapat menginstal klien Dropbox. Ini akan menjadi cara termudah, biarkan saja kotak Anda menjadi bagian dari struktur file Anda dan hilangkan kebutuhan unduhan yang rumit.
Lihat posting askubuntu.com ini , dan halaman unduh Dropbox .

amotzg
sumber
4
Mencoba mendapatkan tautan langsung di peramban memunculkan iklan untuk opsi peningkatan. Saya melihat jawaban lain ( superuser.com/a/486351/106977 ) yang melibatkan ?dl=1, tetapi itu tidak memungkinkan seseorang untuk mendapatkan di tautan juga (mungkin karena Box mencegah penggunaan kecuali Anda memutakhirkan).
bgoodr
@ amotzg apakah ada cara untuk melanjutkan unduhan dari dropbox dengan flag --continue? Sepertinya tidak bekerja untuk saya. ( unix.stackexchange.com/questions/174850/… )
prayagupd
@PrayagUpd, temukan ini stackoverflow.com/questions/18084677/… .
amotzg
1
Pengaya ini membantu dengan tautan dropbox bersama yang memerlukan kata sandi untuk mengunduhnya. Catatan, mengklik kanan tombol "unduh", memilih cliget memberi Anda URL ke output? Dl = 0, yang merupakan file yang lebih kecil. Mengubahnya menjadi? Dl = 1 memberikan jalur pengunduhan yang benar.
JonTheNiceGuy
116

Cukup tambahkan ?dl=1di akhir tautan! Sebagai contoh:https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

Itu akan memberi Anda pengambilan baik file yang bersangkutan tanpa menambahkan apa pun ke file.

Satu hal lagi! Jika Anda ingin menyimpan file di tempat lain gunakan -Oopsi seperti ini

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

Dan jika Anda ingin memiliki sedikit GUI, Anda dapat menggunakan zenityuntuk menandai lokasi di mana file akan diunduh!

Berikut ini contoh kode:

#!/bin/bash
dir=$(zenity --file-selection --directory)
wget -O $dir/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"
Ismael Segui
sumber
Itu luar biasa, bekerja di luar kotak ...
slotishtype
Hanya menggunakan saran Anda untuk mendapatkan folder bersama, dan menerima file zip yang luar biasa (nama hilang). Luar biasa! Terima kasih banyak!!
Rafareino
1
Jawaban yang jauh lebih baik daripada yang diterima. Ini banyak membantu, terima kasih.
Seiyria
3
Apakah metode ini masih berfungsi? Menggunakan perintah wget 'https://www.dropbox.com/sh/my_folder_url?dl=1'saya terus menerima ERROR 400: Bad Request.
Paul Rougieux
Sekarang saya mengerti 500 Internal Server Error, Dropbox benar-benar omong kosong.
Avio
15

Dropbox telah memodifikasinya sehingga wgetakan melakukan hal yang benar dan mengambil file alih-alih pengantara.

Gunakan "Bagikan Tautan" untuk mengambil tautan langsung ke file.

Ryan
sumber
Ini seharusnya jawaban yang benar, sepele dengan tautan bagikan.
davidparks21
Bagus! Saya mendapat wget: No matchhasil, yang diselesaikan dengan menggunakan tautan terlampir dalam tanda kutip tunggal (mungkin karena ?di url?)
Matifou
3

Melihat pertanyaan ini dan berpikir ini dapat membantu seseorang mencoba mengunduh banyak file sekaligus.

Berikut ini adalah skrip Windows CMD / Batch kecil yang dapat Anda gunakan.
Ini dapat dengan mudah disesuaikan untuk bekerja di bawah shell Bash (Mac / Linux / dll).
Ini menggunakan CURL . WGET juga harus bekerja dengan beberapa penyesuaian kecil ..

1. Instal Curl untuk Windows.

2. Letakkan masing-masing tautan yang DIBAGI dalam file teks (1 per baris).

3. Sesuaikan semua parameter "? Dl = 0" di file teks Anda ke "? Dl = 1" dan simpan.

4. Salin skrip di bawah ini ke file yang disebut 'geturllist.cmd' (atau pilihan Anda)

5. Buka prompt CMD dan jalankan skrip CMD.

File yang diunduh akan muncul di direktori kerja saat ini dari skrip yang Anda jalankan.

CATATAN:
Anda harus telah diformat dengan benar SHARED LINKS yang dapat dibuka "Siapa pun yang memiliki tautan". Skrip ini TIDAK berfungsi dengan tautan atau bagikan yang dilindungi kata sandi berdasarkan login / email Dropbox.
CATATAN:
Jika satu file atau grup file (zip otomatis) melebihi ukuran tertentu, itu akan gagal dengan kesalahan ("File (zip) terlalu besar. Silakan tambahkan ke Dropbox Anda."). Dalam hal ini Anda harus melakukan seperti yang dikatakan .. skrip ini tidak akan berfungsi karena tautan berbagi tidak dapat langsung diunduh.

Contoh file teks:
("RandomShareCharacters / Here" akan diganti dengan apa yang tertulis di tautan berbagi)

 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.

Contoh penggunaan:

geturllist.cmd X:\somepath\dropbox.txt

bshea
sumber
1
Suara buruk tanpa komentar sangat bagus. Terima kasih. Terluka perasaanmu?
bshea
1
Tidak dapat dipercaya mengapa orang menurunkan jawaban ini, unduh.
Josyula Krishna
0

Anda akan mendapatkan sesuatu bernama "file" atau nama aneh ... Hanya mengganti nama file itu menjadi apa pun yang Anda inginkan akan melakukan trik. Sebenarnya file yang diunduh adalah file yang Anda inginkan hanya dengan nama aneh dan tanpa atribut tipe file.

Kruno
sumber
-2

Metode termudah dan paling dijamin untuk unduhan jenis ini adalah dengan menggunakan alat pengembang google chrome.

  • Tekan F12 untuk membuka alat pengembang
  • Buka tab jaringan
  • Tekan tautan unduhan untuk memulai unduhan
  • Temukan acara unduhan di acara jaringan
  • Klik kanan baris dan pilih "Copy as cURL (bash)" atau windows jika Anda mau

  • Url akan terlihat seperti ini:

    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"
    
  • Ganti curldenganwget

  • Ganti -H "some headers"dengan--header="some headers"
  • Rekatkan itu ke jendela bash Anda dan tambahkan -oparameter. (Jika Anda tidak menambahkan parameter ini, output akan dicetak ke konsol.
  • Tekan enter dan nikmati unduhan Anda.
Hüseyin Yağlı
sumber
OP meminta penggunaan dengan wget.
twerdster
Anda dapat dengan mudah mengkonversi dari curl ke wget: stackoverflow.com/a/25044709/531524
Hüseyin Yağlı