Bij het toevoegen van bestanden aan artikelen proberen we zoveel mogelijk bestaande bestanden opnieuw te gebruiken. Hiermee voorkomen we dat er onnodig ruimte op de webserver wordt gebruikt. We herkennen bestanden aan de hand van een zogenaamde bestandshash. Dit is een cryptografische waarde die uniek is voor de inhoud van een bestand.
Metadata
In oudere versies van onze plugin, sloegen we de bestandshash op in de metadata van het bestand in de Media Gallery. Dit werkt prima totdat het bestand door een optimalisatieplugin wordt bewerkt. In veel gevallen gaat hierbij de metadata verloren waardoor we het bestand niet meer kunnen herkennen.
Database
In de nieuwere versies van onze plugin slaan we daarom de bestandshash nu op in een databasetabel. Deze wordt niet overschreven door een optimalisatieplugin waardoor de data intact blijft.
Onjuiste hash
In sommige gevallen kan het gebeuren dat een bestand een onjuiste bestandshash krijgt. Vaak gebeurt dit als het gevolg van caching. Hierbij wordt voor veelgebruikte functies in het geheugen opgeslagen wat de functie als resultaat heeft. Dit resultaat wordt vervolgens vanuit het geheugen geladen in plaats van de functie telkens opnieuw uit te voeren. Dit zorgt voor een aanzienlijke snelheidswinst, maar kan onbetrouwbare resultaten tot gevolg hebben. Zo kan het gebeuren dat een opgeslagen hash vanuit het geheugen wordt geladen in plaats van de daadwerkelijke hash van het bestand te laden.
Hashes opnieuw berekenen
In onze plugin hebben we een “Media Beheer” tabblad. Op dit tabblad vind je een knop “Start filesystem scan“.
Met deze knop kan je een volledige scan starten van de uploads map van je WordPress installatie. Van alle bestanden in deze map (en de submappen) wordt gecontroleerd of het bestand in de Media Gallery staat, of het in gebruik is bij producten, of de hash correct is, wat de bestandsgrootte is en of het bestand leesbaar is.
Bij het berekenen van de bestandshash worden onjuiste hashes automatisch gecorrigeerd.
Synchroniseren
Is de filesystem scan volledig afgerond? Synchroniseer dan nu de artikelen uit King met de webshop. Hierdoor komen de bestanden weer in de FTP wachtrij te staan en zullen de juiste bestanden aan de juiste artikelen worden gekoppeld.