Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Mickey_Mouse 08 Dubna 2013, 14:28:46
-
Dobrý den,
nějak se mi vnukl nápad vytvořit si pro svůj server "downloader", který by měl web rozhraní, kde by uživatel zadat soubor který chce stáhnout a soubor by byl serverem stáhnut do úložiště. Je toto možné provést pomocí PHP? Co případně byste mi doporučili ? Děkuji
//Jsem boužel mírně rozmazlen .Net C#, tak kdyby bylo něco podobného.
-
Mozne to urcite je
Kdybych to resil ja osobne, tak bych v php udelal jen frontend, ktery by pomoci at daval do fronty spousteni skutecneho stahovaciho (napr. bash) skriptu. Toto reseni bych vybral proto, ze webove servery maji omezenou dobu provadeni skriptu a aby jsi mohl zadat do formulare link k souboru a okamzite vypnout klientsky pocitac. Bash skript spusteny diky at ty soubory uz stahne sam.
-
Super, myslel jsem podobně, akorát jsem se narazil na dva problémy, co když budu chtít stahovat z premium účtu (ulozto.cz),případně pokud budu muset zadávat captchu, bude k tomu stačit "wget" ?
Děkuji moc za odpověď
-
mrkni na free rapid downloader, jak to má vyřešeno. Captcha přes free rapid downloader většinou na uloz.to není vyžadována (možná jí dokáže dekódovat) a podporuje i premium účty.
Třebas bys ho mohl mít na serveru jako aplikaci a uživatel by jen přes php sypal odkazy.
-
Přes wget lze zadávat i heslo, viz man wget:
--password=password
Specify the username user and password password for both FTP and HTTP file retrieval. These parameters can be overridden using the
--ftp-user and --ftp-password options for FTP connections and the --http-user and --http-password options for HTTP connections.
--ask-password
Prompt for a password for each connection established. Cannot be specified when --password is being used, because they are mutually
--http-password=password
Specify the username user and password password on an HTTP server. According to the type of the challenge, Wget will encode them
Another way to specify username and password is in the URL itself. Either method reveals your password to anyone who bothers to
run "ps". To prevent the passwords from being seen, store them in .wgetrc or .netrc, and make sure to protect those files from
other users with "chmod". If the passwords are really important, do not leave them lying in those files either---edit the files
--proxy-password=password
Specify the username user and password password for authentication on a proxy server. Wget will encode them using the "basic"
Security considerations similar to those with --http-password pertain here as well.
--post-data 'user=foo&password=bar' \
If this option is given, Wget will send Basic HTTP authentication information (plaintext username and password) for all requests,
--ftp-password=password
Specify the username user and password password on an FTP server. Without this, or the corresponding startup option, the password
Another way to specify username and password is in the URL itself. Either method reveals your password to anyone who bothers to
run "ps". To prevent the passwords from being seen, store them in .wgetrc or .netrc, and make sure to protect those files from
other users with "chmod". If the passwords are really important, do not leave them lying in those files either---edit the files
communication with the server, which may include passwords and pieces of downloaded data. Since the bug address is publically
-
No nevím jestli by wget dokázal přes to heslo autentifikaci... každopádně captcha kód si myslím nezvládne obejít pouhý wget.
-
Ono, boužel zrovna uloz.to apod.. nevypisuje přímou cestu k souborům nýbrž:
"http://uloz.to/xRJPi56z/cs1-6-gamesites-wh-wallhack-exe"
po zadání Captcha:
"http://storage1-free.uloz.to/Ps;Hs;fid=30525656;cid=764808262;rid=948557358;up=0;uip=88.102.198.167;tm=1365609826;ut=f;aff=uloz.to;did=uloz-to;He;ch=0984af4c63f90f53c667a21af0a6cd73;Pe/30525656/cs1-6-gamesites-wh-wallhack.exe?bD&c=764808262&De&redirs=2" .
Takže v podstatě wget toto neumí ...
Mimochodem, máte někdo vyzkoušený na captchu: "http://www.wausita.com/" ? Díky
-
Autentifikaci jsem přes wget kdysi zkoušel a fungovalo to - zrovna to ulozto (premium účet), pak už se nic nezadávalo.
-
Super ;) Díky moc, zkusím.
Jen poslední otázečka.
Napsal jsem ten downloader v php, tedy zadávám soubor + heslo. Nicméně pokud bych chtěl vědět kolik % je staženo jak toho mohu docílit ?
Zkoušel jsem funkci exec(wget http/.../xxx.png), nicméně nic nevypíše.
-
exec urcite neni jedina funkce pro spousteni.
mrkni do manualu, urcite tam najdes funkci, ktera spusti externi program + posle vystup programu.
Ale rekl bych, ze pres spousteni wgetu primo cesta fakt nevede. Nejspis to bude chtit prubezne ve skriptu ukladat stahovana procenta a cist je treba pres ajax (nebo podobnou prasarnu)
Stejne si myslim, ze psat vlastni downloader v PHP je zbytecne, protoze 1) tyhle veci uz nekdo jiny napsal a 2) kdyz nepostaci jina reseni, je tu porad bash a jeho wget. A neni nic jednodussiho nez pichnout se nekam pres ssh a stahnout si to (pokud to nemuzes stahovat na svem PC)
-
Autentifikaci jsem přes wget kdysi zkoušel a fungovalo to - zrovna to ulozto (premium účet), pak už se nic nezadávalo.
Tak v podstatě WGET by měl umět poslat hodnoty přes POST, což nejspíš uloz.to vyžaduje pro autentifikaci uživatele. ;)
-
Tak boužel asi dělám něco špatně, ale nejde mi stahovat z premium účtu na uložtu. Nemohl bys te to také někdo zkusit ? Děkuji
-
Tak boužel asi dělám něco špatně, ale nejde mi stahovat z premium účtu na uložtu. Nemohl bys te to také někdo zkusit ? Děkuji
Já se k tomu dostanu až večer, tak snad někdo jiný - ale jak říkám tato a podobné služby mi fungovaly - ujisti se, že používáš správný parametr a že ho používáš dobře.
Jak to zadáváš?
-
sudo wget http... --http-user jméno --http-password heslo
Díky ;)
Tohle mám pocit, že funguje, pokud je složka zaheslovaná pomocí .htaccess. Oni budou mít autentifikaci pomocí formuláře nejspíš. Tam bude chtít vytvořit nějakej request s POST daty.
-
ulozto na premium jde normalne wgetem (tohle konkretne stahne vsechny odkazy v souboru links a taha 10 veci najednou):
cat links | xargs -P 10 -r -n 1 wget --user=tvujlogin --password=heslo --auth-no-challenge --header="User-Agent: UFM 1.6" -nv -v
Jinak ty linky se daly i jednoduse cekovat pomoci HEAD, jako studijni material sem kdysi jen odsniffoval ten jejich ulozto sragoru manager pro windows...
Co se tyce PHP, pokud ho neznas a budes tedy delat neco uplne od zacatku, spis bych doporucil nejakej normalnejsi jazdyk jako Python nebo Ruby
-
sudo wget http... --http-user jméno --http-password heslo
Díky ;)
Tohle mám pocit, že funguje, pokud je složka zaheslovaná pomocí .htaccess. Oni budou mít autentifikaci pomocí formuláře nejspíš. Tam bude chtít vytvořit nějakej request s POST daty.
Cože? Sudo na wget?