Nástroje pro správu obrázků 3 v 1- čištění souborů, databáze a adresářů

Roky provozu, spadlé importy a mazání produktů po sobě nechávají na disku tisíce obrázků, které už nikam nepatří – a v databázi záznamy o obrázcích, které dávno neexistují. Modul obojí najde, ukáže vám kompletní report a po vašem potvrzení uklidí. Zvládne i půl milionu obrázků, běží v dávkách na jakémkoliv hostingu a kdykoliv ho můžete přerušit.

Více informací

Kód:

Verze modulu: 5.0.0

Kompatibilita: 1.7, 9, 8

Výběr varianty produktu

990 Kč

 

818 Kč bez DPH

Popis modulu

Kolik místa na disku platíte zbytečně?

Adresář img/ roste roky a nikdy se sám neuklidí. Smažete produkt, ale jeho obrázky na disku zůstanou. Spadne import v půlce a nechá po sobě soubory bez záznamu – nebo naopak záznamy bez souborů. Přemigrujete e-shop a zbydou adresáře k ID, která už neexistují. Nic z toho e-shop nezobrazuje, nikdo o tom neví, ale platíte za to místo na disku a zálohy se protahují.

Tenhle modul projde skutečné soubory na disku, porovná je s databází v obou směrech a přesně vám řekne, co je k ničemu.

[SCREEN 1: Konzole čištění – běžící analýza s ukazatelem, počítadly a výpisem nálezů]

Tři neduhy, které umí vyřešit

  • Soubory bez záznamu v databázi – obrázek na disku leží, ale žádný produkt, kategorie ani výrobce o něm neví. E-shop ho nikdy nezobrazí, jen zabírá místo.
  • Záznamy bez souboru – v databázi je id_image, ale soubor chybí. Typicky po chybě při importu. Modul takový záznam smaže a u produktu zároveň dopočítá hlavní obrázek, aby nezůstal bez náhledu v katalogu.
  • Zbylé adresáře – adresáře k ID, která už neexistují. Nemusí být ani prázdné – bývá v nich index.php nebo informační soubor. Modul je uklidí až nakonec, když jsou obrázky pryč.

Nejdřív report, teprve pak mazání

Modul nikdy nemaže rovnou. Nejprve proběhne analýza, která si zapíše konkrétní seznam akcí, a vy dostanete kompletní report: co, kde, jak velké a proč. Teprve když ho potvrdíte, začne úklid – a ten už jen přehrává hotový seznam, takže disk znovu neprochází.

Report si můžete filtrovat podle typu nálezu i stavu a celý ho vyexportovat do CSV.

[SCREEN 2: Report čištění – filtrovaný výpis nálezů s cestami, velikostmi a stavy]

Nic se neztratí: ZIP archiv a SQL pro obnovu

Každý běh úklidu odloží smazané soubory do ZIP archivu se zachovanou strukturou cest a přibalí k nim restore.sql se smazanými záznamy včetně původních hlavních obrázků a pozic. Kdyby se něco nepovedlo, obnova je rozbalit archiv do img/ a pustit SQL skript.

Až archiv nebudete potřebovat, smažete ho jedním klikem přímo v administraci – na rozdíl od karantény vám nesedí na disku natrvalo.

Funguje i na velkém e-shopu a na obyčejném hostingu

Půl milionu obrázků není problém. Modul nepotřebuje cron, SSH ani zvýšený max_execution_time:

  • Běží v dávkách v prohlížeči. Každá dávka dostane časový rozpočet místo pevného počtu položek – pomalý hosting udělá menší dávku a nespadne na limitu, rychlý udělá větší.
  • Nezatěžuje databázi ani paměť. Na celou dávku adresářů padne jeden dotaz a průchod databází jde klíčem, ne stránkováním.
  • Vidíte, co se děje. Ukazatel průběhu, tikající počítadla a rolující výpis konkrétních akcí – ne zatuhlá stránka.

[SCREEN 3: Výběr rozsahu – produkty, kategorie, výrobci, dodavatelé před spuštěním]

Kdykoliv přerušit, později pokračovat

Úklid velkého e-shopu nemusíte odsedět. Dáte Pozastavit a běh se zastaví v konzistentním bodě – rozdělaná akce vždy doběhne, takže disk nezůstane v půli cesty. Až se vrátíte, dáte Pokračovat a naváže přesně tam, kde skončil. Chcete začít znovu od nuly? Reset.

Opatrnost na prvním místě

Nástroj, který maže, musí být konzervativní. Proto:

  • V živých adresářích jen obrázky. U adresáře, který v databázi existuje, maže jen soubory rozpoznané jako obrázky PrestaShopu – jazykové výchozí obrázky ani cizí soubory se nedotknou.
  • Sirotčí adresář jde pryč celý. Adresář k neexistujícímu ID se uklidí včetně všeho, co v něm leží – vše se nejdřív zálohuje do archivu, takže rozhodnutí zůstává na vás: archiv stáhnete, nebo smažete.
  • Před smazáním přeověří. Mezi analýzou a úklidem mohl doběhnout import; co mezitím v databázi ožilo, se přeskočí a v reportu je to vidět.
  • Nesahá mimo img/. Každá cesta se kontroluje proti kořeni obrázků.

Co všechno umí zkontrolovat

Typ obrázkůUmístěníCo řeší
Produktyimg/psoubory, záznamy, hlavní obrázek, adresáře
Kategorieimg/csoubory bez kategorie
Výrobciimg/msoubory bez výrobce
Dodavateléimg/susoubory bez dodavatele

Připraveno na další nástroje

Čištění obrázků je první nástroj v sekci Servisní nástroje. Sekce je založená jako rozcestník, takže další údržbové nástroje přibudou jako další karta – bez přestavby toho, co už používáte.

Parametry modulu

  • Podporovaná verze Prestashop 1.7, 9, 8
  • Licence Časově neomezená
  • Podpora 12 měsíců
  • Podpora MULTISTORE Ano / licence pro celý multistore
  • Verze modulu 5.0.0
  • Lokalizace Čeština (CS), Němčina (DE), Angličtina (EN), Maďarština (HU), Polština (PL), Slovenština (SK)
  • Autor David Mrózek
Recenze

Komentáře k modulům mohou psát jen registrovaní uživatelé. Recenze jsou schvalovány a ověřovány administrátorem e-shopu.

Žádný názor zákazník pro tuto chvíli.

Napsat recenzi

Nástroje pro správu obrázků 3 v 1- čištění souborů, databáze a adresářů

Nástroje pro správu obrázků 3 v 1- čištění souborů, databáze a adresářů

Roky provozu, spadlé importy a mazání produktů po sobě nechávají na disku tisíce obrázků, které už nikam nepatří – a v databázi záznamy o obrázcích, které dávno neexistují. Modul obojí najde, ukáže vám kompletní report a po vašem potvrzení uklidí. Zvládne i půl milionu obrázků, běží v dávkách na jakémkoliv hostingu a kdykoliv ho můžete přerušit.

Časté otázky a odpovědi
Jak aktualizuji své moduly?

Novou verzi modulu stáhnete ve svém účtu v sekci Moduly a licence a nahrajete ji v administraci přes Moduly → Přidat nový modul. Stará verze se přepíše a data zůstanou zachována – modul předem neodinstalovávejte. Aktualizace jsou zdarma rok od nákupu.

Celý návod krok za krokem →


Jak nainstaluji modul do svého eshopu?

V administraci otevřete Moduly a služby → Přidat nový modul, vyberete ZIP soubor modulu a kliknete na Nahrát. Poté modul v seznamu najdete a stisknete Instalovat. Nahrát jej lze i přes FTP do složky modules, bezpečnější je ale instalace přes administraci.

Celý návod krok za krokem →


Jak přeložím modul do dalšího jazyka?

Modul přeložíte přímo v administraci: v seznamu modulů zvolíte u modulu možnost Přeložit, vyberete cílový jazyk, texty upravíte a uložíte. Pokud modul obsahuje vlastní e-maily, nakopírujte navíc přes FTP jazykové šablony e-mailů podle návodu.

Celý návod krok za krokem →


Kde nástroj najdu?

V administraci v sekci Rozšířené parametry / Nástroje obrázků / Servisní nástroje, kde je karta Čištění obrázků. Zapnutí modulu a licenci najdete jako u ostatních našich modulů v Moduly / Konfigurovat.


Smaže mi to něco, co potřebuju?

Modul maže jen to, co e-shop stejně nikde nezobrazuje – soubor, na který neukazuje žádný záznam v databázi, nebo záznam, ke kterému chybí soubor. Navíc:

  • nejdřív jen analyzuje a ukáže report – dokud ho nepotvrdíte, nic se nemaže,
  • v živých adresářích maže jen soubory rozpoznané jako obrázky PrestaShopu; sirotčí adresář jde pryč celý,
  • těsně před smazáním každou položku přeověří proti databázi (kryje souběžný import),
  • smazané soubory a záznamy odloží do ZIP archivu, ze kterého jde obnovit.

Jak obnovím to, co se smazalo?

Každý běh úklidu vytvoří ZIP archiv. Najdete ho v reportu v sekci Záložní archivy a stáhnete. Uvnitř jsou:

  • smazané soubory se zachovanou strukturou cest – rozbalíte je do adresáře img/,
  • restore.sql se smazanými záznamy včetně původních hlavních obrázků a pozic – pustíte ho nad databází e-shopu.

Archiv se nemaže sám – zabírá místo na disku, takže ho po ověření smažte tlačítkem v administraci.


Zvládne to i e-shop s půl milionem obrázků?

Ano, na to je stavěný. Neprochází disk ani databázi celou do paměti: adresáře se ověřují po dávkách jedním dotazem a databáze se prochází klíčem, ne stránkováním. Práci řídí prohlížeč po dávkách, takže PHP nikdy neběží déle než pár vteřin vkuse.


Potřebuju cron, SSH nebo úpravu hostingu?

Ne. Všechno běží z administrace v prohlížeči. Každá dávka dostane časový rozpočet místo pevného počtu položek – na pomalém hostingu udělá menší dávku a nespadne na max_execution_time, na rychlém udělá větší. Není potřeba nic navyšovat.

Jedinou volitelnou závislostí je PHP rozšíření ZipArchive pro zálohy. Když na hostingu chybí, modul vás na to upozorní před spuštěním – čištění pak funguje, ale bez záložního archivu.


Musím u toho sedět, než to doběhne?

Nemusíte. Kdykoliv dáte Pozastavit; běh se zastaví v konzistentním bodě (rozdělaná akce vždy doběhne) a pozice se uloží. Až se vrátíte, dáte Pokračovat a naváže tam, kde skončil. Reset zahodí analýzu a další běh začne od začátku.

Kdyby vypadlo spojení nebo zavřete prohlížeč, nic se neztratí – pozice je v databázi, ne v prohlížeči.


Co se stane s hlavním obrázkem produktu?

Když se produktu smaže záznam obrázku, který byl označený jako hlavní, modul hlavní obrázek dopočítá – dostane ho ten zbylý obrázek s nejnižší pozicí. Když produktu nezbyde žádný obrázek, hlavní obrázek se jen zruší. Nastavuje se přitom v ps_image i ps_image_shop, aby produkt nezůstal v katalogu bez náhledu.


Proč nález zmizel s poznámkou „záznam už zase existuje"?

Mezi analýzou a úklidem mohl doběhnout import a nález zastarat. Modul proto každou položku těsně před smazáním znovu přeověří, a co mezitím ožilo, přeskočí. V reportu to najdete ve stavu Přeskočeno i s důvodem.


Můžu spustit čištění ze dvou oken najednou?

Ne, a modul to sám ohlídá. Běh je zamčený tokenem, takže druhé okno dostane hlášku, že čištění už běží jinde. Bez toho by si dvě smyčky braly stejnou práci a přepisovaly si pozici.


Co se stane se zbylým adresářem a jeho obsahem?

Adresář k neexistujícímu ID jde pryč celý – nejdřív se všechno, co v něm leží (obrázky i cizí soubory), zálohuje do ZIP archivu a smaže, nakonec zmizí i adresář sám. V reportu je každý soubor uvedený zvlášť. Adresář zůstane jen tehdy, když v něm žije obrázek s delším ID (např. adresář 1/2 kryje obrázek 123 v podadresáři) – pak je v reportu poznámka adresář není prázdný.


Co znamená „soubor ve špatném adresáři"?

PrestaShop ukládá obrázek 123 do img/p/1/2/3/123.jpg – cesta z číslic je přímo ID obrázku. Když někde leží obrázek s číslem, které neodpovídá své cestě, e-shop ho odtamtud nikdy nenačte. Vzniká to po chybných migracích a je to sirotek, i když samotné ID v databázi existuje.


Funguje modul na multistore?

Ano. Obrázky jsou v PrestaShopu společné pro celý multistore, takže čištění se spouští jednou a platí pro všechny obchody. Chování licence je stejné jako u ostatních našich modulů.


Můžu vyčistit jen kategorie a produktů se nedotknout?

Ano. Před spuštěním zaškrtnete, co se má kontrolovat – produkty, kategorie, výrobce, dodavatele, nebo jen některé z nich.


Proč ukazatel průběhu skáče a nesedí přesně?

Celkový počet je odhad – přesně by se spočítat nedal, aniž by se disk prošel dvakrát, což by čekání zdvojnásobilo. Ukazatel je proto orientační a modul to u něj i píše. Přesná čísla najdete v počítadlech a v reportu.


Zpomalí čištění e-shop zákazníkům?

Zátěž je rozprostřená do krátkých dávek a mezi nimi má server volno, takže běžný provoz to nepoloží. Přesto doporučujeme pustit úklid mimo špičku – jde o operace nad diskem a mazání souborů.