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

Název: Downloader - Php ?
Přispěvatel: 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.
Název: Re:Downloader - Php ?
Přispěvatel: Šuohob 08 Dubna 2013, 16:14:24
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.

Název: Re:Downloader - Php ?
Přispěvatel: Mickey_Mouse 08 Dubna 2013, 16:38:21
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ěď
Název: Re:Downloader - Php ?
Přispěvatel: beer 08 Dubna 2013, 17:10:32
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.
Název: Re:Downloader - Php ?
Přispěvatel: Tadeáš Pařík 08 Dubna 2013, 17:27:39
Přes wget lze zadávat i heslo, viz man wget:

Kód: [Vybrat]
       --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
Název: Re:Downloader - Php ?
Přispěvatel: Martin - ViPEr*CZ* 08 Dubna 2013, 17:46:57
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.
Název: Re:Downloader - Php ?
Přispěvatel: Mickey_Mouse 08 Dubna 2013, 18:05:15
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
Název: Re:Downloader - Php ?
Přispěvatel: Tadeáš Pařík 08 Dubna 2013, 18:33:56
Autentifikaci jsem přes wget kdysi zkoušel a fungovalo to - zrovna to ulozto (premium účet), pak už se nic nezadávalo.
Název: Re:Downloader - Php ?
Přispěvatel: Mickey_Mouse 08 Dubna 2013, 19:55:36
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.
Název: Re:Downloader - Php ?
Přispěvatel: Šuohob 08 Dubna 2013, 23:05:31
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)
Název: Re:Downloader - Php ?
Přispěvatel: Martin - ViPEr*CZ* 09 Dubna 2013, 10:07:42
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.  ;)
Název: Re:Downloader - Php ?
Přispěvatel: Mickey_Mouse 09 Dubna 2013, 12:39:41
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
Název: Re:Downloader - Php ?
Přispěvatel: Tadeáš Pařík 09 Dubna 2013, 12:51:31
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áš?
Název: Re:Downloader - Php ?
Přispěvatel: Mickey_Mouse 09 Dubna 2013, 13:21:55
Kód: [Vybrat]
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.
Název: Re:Downloader - Php ?
Přispěvatel: starenka 10 Dubna 2013, 22:15:15
ulozto na premium jde normalne wgetem (tohle konkretne stahne vsechny odkazy v souboru links a taha 10 veci najednou):

Kód: [Vybrat]
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
Název: Re:Downloader - Php ?
Přispěvatel: beer 11 Dubna 2013, 14:48:50
Kód: [Vybrat]
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?