Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
maxijoey
Člen
Avatar
maxijoey:1.7.2019 10:01

Potřeboval bych vyřešit rychlostní problém při stahování obrázků. Děje se následující. Aplikace přebírá odkazy, z nich stáhne obrázek. Následně skotroluje jeho velikost a pokud přesahuje předepsané rozměry zmenší ho a uloží na dané umístění na disku. Pokud je ok jde tam rovnou.
Problém je že to celé může trvat klidně 3 vteřiny jeden obrázek co jsem pozoroval.

Spíš mě jen zajímá zda je to normální čas, nebo stále někde něco dělám blbě.

Zkusil jsem: Zkoušel jsem různě manipulovat se zpracujícím kodem a experimentovat, ale čas pořád stejný.

Chci docílit: Rád bych pokud by se to komplet povedlo pod vteřinu na jeden obrázek.

 
Odpovědět
1.7.2019 10:01
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:1.7.2019 13:47

Podle toho kodu tezko rici, kde je problem. Zadny jsem nedal? Prave :)

Je mozne, ze obrazky, ktere tam tlacis maji pres 20 MB. Php funkce nejsou zrovna kdovijak optimalizovane. Muzes to vyzkouset na nejnovejsi verzi php (odstranuji bugy postupne). Muzes se zkusit podivat, jak to resi v novem php. Muzes zkusit linuxovy ImageMagick, pres cmd, ten by mohl byt rychlejsi.
google = new php image transform

Ono, vetsinou tahas obrazek pres http protokol. 20 MB je desne pomale. Tahas to do tmp. Tady je dobre se zastavit, nepouzivat move_upload. Obrazek v tmp porovnat na velikost. A az pak se rozhodnout na move_upload nebo transformaci.
Z hlediska bezpecnosti bys mel pouzit transformaci vzdy, nebo aspon jakesi vycisteni jpeg hlavicek a mozna malinkou manipulaci s pixely. To je ochrana proti utoku, kdy do obrazku podstrkuji informace, ktere tam nepatri. Takhle bys zlocincum sebral vitr z plachet. Na ukor vetsi zateze, ale.
Navic, lze udelat obrazek, ktery se tvari jako obrazek, ale je spustitelny i pres web adresu jako php nebo mozna c kod. Nevim, nezkoumal jsem tu technologii. Mozna je to klasicky c/php kod, ktery default vraci obrazkova data. Ale kdyz das do adresy nejaky parametr, tak spusti jinou cast. Vlastni transformaci bys docilil toho, ze prevezmes obrazkova data a zbytek kodu zahodis. Takze si muzou hackovat, jak chteji :)

 
Nahoru Odpovědět
1.7.2019 13:47
Avatar
maxijoey
Člen
Avatar
maxijoey:1.7.2019 13:58

Díky za odpověď, i když ne přímo, co jsi napsal se mi taky hodí :-). Jinak obrázky jsou normál jpg kde největší má možná 2 MB. Proto mě zaráží ta rychlost zpracování.

 
Nahoru Odpovědět
1.7.2019 13:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.