wget komutunu kullanarak dropbox dosyalarını nasıl indirebilirim?


72

Görünüşe göre dropbox dosyalarını yalnızca chrome ve firefox gibi explorer kullanarak indirebiliyorum. İndirmek için wget kullanırsam, html formatında bir dosya alırdım. Neden?

Mesela bu linki açabilirsiniz

Bu dosyanın içeriğini alamazsınız, neden? Aşağıdaki indirmek için test.txt bir parçasıdır, bu hiç test.txt içeriği değil.

Yani wgetExplorer yerine Explorer kullanarak dosyaları indirmek mümkün mü?

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 komutunu komut ile alamıyorum

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


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

Aptalca bir soru: Bir tarayıcı kullanarak indirmeye çalıştığınızda DropBox'a giriş yaptınız mı?

1
Kullanılması wgetbağlantı Geri alma üzerine test.txtyanımda sadece iyi (4 bayt "test" içeren). Belki de içindeki bir şey buna .wgetrcneden oluyordur?
jjlin

@jjlin emriniz nedir? maden yukarıda
ekledi

5
Ben kullanılan wget --no-check-cert https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt. Bu benim için iyi çalıştı, ancak bir indirmeyi zorlamak istiyorsanız, wget --no-check-cert 'https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1'bunun yerine denemeyi düşünebilirsiniz ( ?dl=1sorgu parametresini not edin ).
jjlin

@jjlin bu yüzden belki de dropbox'tan dosya indirmek istersem bir script
gerekebilir

Yanıtlar:


21

Sorunuzdaki bağlantı, dosyanın bağlantısı değil, bu dosyanın Dropbox sayfasına bir bağlantıdır. İndirmek
için kullanmak istiyorsanız wget, indirme düğmesini sağa doğru iterek açılan menüden doğrudan indirme bağlantısını kopyalamanız gerekir.

Benim durumumda bu iyi çalıştı. Ancak, bazen tarayıcının dışından bağlantı indirme problemleri, bağlantının kendisinden başka parametrelerle de ilgilidir. Yalnızca bağlantıyı kopyaladığınızda bulunmayan ortak bir öğe, site çerezleridir.

Doğru bağlantıları almak için bu harika FF eklentisini deneyinwget

Ayrıca, özellikle sıradan bir istasyondan değil, bilinen bir iş istasyonundan söz ediyorsak, elbette Dropbox istemcisini yükleyebilirsiniz. Bu en kolay yol olacak, sadece kutunuzun dosya yapınızın bir parçası olmasına izin verin ve karmaşık indirme gereksinimini ortadan kaldırın.
Bu askubuntu.com yayınına ve Dropbox indirme sayfasına bakın.


4
Tarayıcıdaki doğrudan bağlantıyı almaya çalışmak bir yükseltme seçeneği için bir reklam açar. Diğer cevabı görüyorum ( superuser.com/a/486351/106977 ) ?dl=1, ancak bu bağlantının linke ulaşmasına izin vermiyor (muhtemelen siz yükseltme yapmadan Box'ın kullanımını engellemesi nedeniyle).
bgoodr

@amotzg, indirmeyi flag ile dropbox'tan devam ettirmenin bir yolu var --continuemı? Bana çalışmıyor gibi görünüyor. ( unix.stackexchange.com/questions/174850/… )
prayagupd


1
Bu eklenti, indirmek için şifre gerektiren paylaşılan bir dropbox bağlantısı ile yardımcı oldu. Not: "indir" butonuna sağ tıklayıp, klibin seçilmesi size URL’yi daha küçük bir dosya olan? Dl = 0 çıkışına verir. Bunu? Dl = 1 olarak değiştirmek doğru indirme yolunu verir.
JonTheNiceGuy

116

Sadece ?dl=1bağlantının sonuna ekleyin ! Örneğin:https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

Bu, dosyaya hiçbir şey eklemeden söz konusu dosyanın iyi bir şekilde alınmasını sağlamalıdır.

Bir şey daha! Dosyayı başka bir yere kaydetmek istiyorsanız, bu -Oseçeneği kullanın

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

Ve biraz GUI almak istiyorsanız zenity, dosyanın indirileceği yeri işaretlemek için kullanabilirsiniz !

İşte bir örnek kod:

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

Bu harika, kutunun dışında çalışıyor ...
slotishtype

Önerinizi paylaşılan bir klasör almak için kullandım ve inanılmaz bir zip dosyası (özledim adı verildi) aldı. Korku veren! Çok teşekkürler!!
Rafareino

1
Kabul edilenden çok daha iyi cevap. Bu çok yardımcı oldu, teşekkürler.
Seiyria,

3
Bu yöntem hala çalışıyor mu? Komutu kullanmaya wget 'https://www.dropbox.com/sh/my_folder_url?dl=1'devam ediyorum ERROR 400: Bad Request.
Paul Rougieux

Şimdi anladım 500 Internal Server Error, Dropbox gerçek bir saçmalık.
Avio

15

Dropbox bunu değiştirdi, böylece wgetdoğru olanı yapacak ve geçiş reklamı yerine dosyayı alacak.

Dosyaya doğrudan link almak için "Bağlantı Paylaş" kullanın.


Bu doğru cevap olmalı, paylaşım bağlantısı ile önemsiz.
davidparks21

Güzel! wget: No matchTek tırnak işareti içine alınmış bağlantı kullanılarak çözülen bir çıktı aldım ( ?belki de url'de olabilir?)
Matifou

3

Bu soruyu gördüm ve bunun bir kerede birçok dosyayı indirmeye çalışan birinin yardımcı olabileceğini düşündüm.

İşte kullanabileceğiniz küçük bir Windows CMD / Toplu komut dosyası.
Bash kabuğu altında çalışacak şekilde kolayca ayarlanabilir (Mac / Linux / etc). CURL
kullanır . WGET ayrıca bazı küçük ayarlamalar ile çalışmalıdır.

1. Windows için Curl'i yükleyin .

2. SHARED bağlantılarını ayrı ayrı bir metin dosyasına (her satıra 1) yerleştirin.

3. Metin dosyanızdaki tüm "? Dl = 0" parametrelerini "? Dl = 1" olarak ayarlayın ve kaydedin.

4. Aşağıdaki betiği 'geturllist.cmd' adlı bir dosyaya kopyalayın (veya seçtiğiniz)

5. Bir CMD istemi açın ve CMD betiğini yürütün.

İndirilen dosyalar, komut dosyasını yürüttüğünüz çalışma dizininde görünecektir.

NOT:
"Bağlantıya sahip olan herkes" açabilmek için düzgün biçimlendirilmiş SHARED LINKS yapmış olmalısınız. Bu komut dosyası, bir Dropbox oturum açma / e-postasını temel alan parola korumalı bağlantılar veya paylaşımlarla DEĞİLDİR.
NOT:
Tek bir dosya veya dosya grubu (otomatik olarak sıkıştırılmış) belirli bir boyutun üzerindeyse, hatayla başarısız olur ("(zip) dosyası çok büyük. Lütfen Dropbox'ınıza ekleyin."). Bu durumda dediğin gibi yapmalısın .. bu script çalışmayacak çünkü paylaşım bağlantısı doğrudan indirilebilir değil.

Örnek metin dosyası:
("RandomShareCharacters / Here", paylaşım bağlantısında söyledikleriyle değiştirilecek)

 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.

Örnek Kullanım:

geturllist.cmd X:\somepath\dropbox.txt


1
Yorum yapılmayan aşağı oylar çok hoş. Teşekkürler. Hislerini incittin mi?
bshea

1
İnanılmaz neden insanlar bu cevaptan feragat ettiler?
Josyula Krishna

0

"Dosya" adında bir şey veya bir tuhaf isim alacaksınız ... Bu dosyayı istediğiniz şekilde yeniden adlandırmak hile yapacak. Aslında indirilen dosya, sadece tuhaf bir adla ve dosya türü özniteliği olmadan istediğiniz dosyadır.


-2

Bu tür indirmeler için en kolay ve en garantili yöntem google chrome'un geliştirici araçlarını kullanmaktır.

  • Geliştirici araçlarını açmak için F12 tuşuna basın
  • Ağ sekmesine git
  • İndirme işlemini başlatmak için indirme bağlantısına basın.
  • Ağ olaylarında indirme olayını bulun
  • Satırı sağ tıklayın ve isterseniz "cURL (bash) olarak kopyala" veya pencereleri seçin

  • URL şöyle görünecek:

    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"
    
  • Değiştir curlilewget

  • Değiştir -H "some headers"ile--header="some headers"
  • Bunu bash pencerenize yapıştırın ve -oparametreyi ekleyin . (Bu parametreyi eklemezseniz, çıktı konsola yazdırılır.
  • Enter tuşuna basın ve indirmenin keyfini çıkarın.

OP, wget ile kullanım istedi.
twerdster

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.