Dubbele bestanden van uw website op de server opschonen

Herkent u het? U uploadt een foto op uw website, maar de foto komt net niet goed uit qua kleur en afmetingen. U uploadt een aangepaste foto, maar toch heeft u een tijdje later weer het originele bestand nodig. Uploaden vanaf uw computer is sneller dan de foto opzoeken in de media-folder van de website, dus nog maar een keer uploaden. Hierdoor loopt de serverruimte vol met dubbele foto’s die onnodige ruimte innemen.

Wij kennen dit, en talloze andere redenen voor dubbele bestanden, als geen ander. Neem bijvoorbeeld AutoVandaag.nl, er worden dagelijks ruim acht artikelen geplaatst met vaak ‘high-res’ foto’s. In de afgelopen vijf jaar is dit een verzameling van 25GB aan afbeeldingen geworden. Vaak wordt hetzelfde bestand voor meerdere berichten geüpload en staat het dubbel op de server waardoor er onnodig opslagruimte gebruikt wordt. Net als u kwamen we hierdoor voor een keuze: opschalen naar een groter hostingpakket of onze server opschonen. Dat laatste was een stuk goedkoper, maar zeker niet makkelijker. De complexiteit zat in het feit dat de bestandsnamen vaak niet overeenkwamen bij de dubbele bestanden. Onderstaande bestandsnamen leverden allemaal dezelfde foto met dezelfde afmetingen:

./media/org/vernieuwde-nissan-leaf-nu-vanaf-23-980-euro-door-batterijlease-5170e9230b52f.jpg
./media/org/nissan-met-leaf-in-de-aanval-5174224ad5757.jpg
./media/org/nissan-verruimt-garantie-leaf-51b1f3538cd3a.jpg
./media/org/verzekering-voor-elektrische-auto-520329cd531c2.jpg

Alle Blackorange ‘hostingpakketten B’ en hoger, staan ons toe om door middel van SSH in te loggen op de server en zo diverse commando’s uit te voeren. Dit is een uniek kenmerk van onze hosting. Deze commando’s zijn te vergelijken met formules in Excel waardoor er bepaalde acties worden uitgevoerd. Nu kunnen we natuurlijk niet zomaar de dubbele bestanden verwijderen, want de bestanden worden op verschillende plekken op de site – met de verschillende bestandsnamen – gebruikt. Een link aanpassen zou een oplossing zijn, maar de lijst met dubbele bestanden ging ver over de tien duizend (!). Dat zou dus een behoorlijk tijdrovende klus worden.

Dubbele bestanden. Onze oplossing?

De dubbele bestanden verwijderen en daarna direct ‘hardlinks’ maken van elk origineel naar de locatie van het duplicaat. In code ziet dat er als volgt uit:

$ rm assets/media/org/nissan-met-leaf-in-de-aanval-5174224ad5757.jpg
$ ln media/org/vernieuwde-nissan-leaf-nu-vanaf-23-980-euro-door-batterijlease-5170e9230b52f.jpg assets/media/org/nissan-met-leaf-in-de-aanval-5174224ad5757.jpg

Hiermee bedoelen we dat de afbeelding “vernieuwde-nissan-leaf-nu-vanaf-23-980-euro-door-batterijlease-5170e9230b52f.jpg” het bestand is dat op de server blijft staan, en dat “nissan-met-leaf-in-de-aanval-5174224ad5757.jpg” verwijderd moet worden. Vervolgens komt er een koppeling naar het bestand op de server voor in de plaats zodat de verwijderde afbeelding doorverwijst naar de enige achtergebleven afbeelding. Na een scherpe test bleek dat het verder geen problemen opleverde en heeft onze Medior Developer Thom een script geschreven. Dit script heeft vervolgens de rest van de dubbele bestanden automatisch te verwijderd en de benodigde hardlinks aangemaakt.

Een middagje werk leverde ruim 10% minder server opslag op door het, uiteindelijk automatisch, verwijderen van dubbele bestanden. Zoals vaker beschreven, wij zijn een vreemde eend binnen de development wereld met eigen titels (zoals AutoVandaag) die we uitgeven. Het grote voordeel voor onze opdrachtgevers is echter dat we dit soort zaken mooi binnen onze eigen omgevingen kunnen ontwikkelen, testen en optimaliseren. Zo zijn de ‘kinderziektes’ eruit voordat we het inzetten voor opdrachtgevers. Mocht u ook veel dubbele afbeeldingen, of andere bestanden, op uw website hebben dan hebben wij nu een script om dit op te lossen. Binnen een paar uur scannen wij de site, passen wij de dubbele afbeeldingen, of andere bestanden, aan en testen wij of alles vlekkeloos werkt.

Heeft u veel dubbele bestanden, of benieuwd naar ons “opschoon-script”?
Neem contact met ons op via onderstaand formulier:

Privacy Voorkeuren

    Noodzakelijk

    Deze cookies houden je cookieinstellingen en sessie instellingen bij.

    PHPSESSID,gdpr[consent_types],gdpr[allowed_cookies]

    Analytics

    Analytics cookies worden gebruikt voor statistische redenen.

    _gid,_gat,_ga