Gecachter Bildername

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
samse
Beiträge: 48
Registriert: Di 1. Sep 2015, 09:05
Kontaktdaten:

Gecachter Bildername

Beitrag von samse » Di 20. Mär 2018, 14:07

Hi Zusammen

Ich wollte mal grundsätzlich fragen, wieso der Bildname, wenn man die Methode cApiImgScale verwendet, mit MD5 gehasht wird? Hat das einen speziellen technischen Grund? Aus SEO Sicht betrachtet, wäre es doch schöner, wenn man ansprechende Bildnamen hätte?
Kann man das irgendwie abstellen, ohne dass ich jetzt im Core die entsprechende Codezeile ändern muss?

Grüsse
Samse

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Gecachter Bildername

Beitrag von Faar » Di 20. Mär 2018, 14:29

Man muss sich dann ein Modul schreiben, das nicht die Bilder cached.
Oder, man baut sich die Funktion als eigene Funktion um (es ist noch eine Function und keine Methode) ohne Cache und benützt dann die.
https://api.contenido.org/con4911/sourc ... ml#499-618

Im cache Namen stehen quasi ein paar Daten, genaueres sieht man hier: https://api.contenido.org/con4911/sourc ... ImgScaleHQ
Man könnte hier eine Funktion nachbauen, die zusätzlich noch den Dateinamen anfügt, aber praktisch wird das schwer, weil das Cache System dann die Datei nicht erkennen kann.

Am besten wäre da ein komplett eigenes Modul das nicht auf diese Contenido Methoden zurück greift.
Das Caching macht ja nur dann Sinn, wenn sich Bilder ändern könnten, wie bei News oder so.
Aber wenn Bilder statisch und in richtiger Größe auf dem Verzeichnis liegen, braucht es kein Caching.

Ich hatte dereinst mal ein Modul geschrieben, das Bilder unbearbeitet lässt, wenn Originalgröße = Wunschgröße ist.
Damit wird auch das Caching umgangen.
Man könnte die ganze Bildbearbeitungs-Datei umschreiben und daraus eine Klasse machen, die man in den Autloader packt.
Die Funktionen sind ja fast schon passend geschrieben.
Bisserl Constructor darüber basteln, paar Variablen vielleicht einfügen und hier und da mal ein public oder static verteilen.
:roll:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

samse
Beiträge: 48
Registriert: Di 1. Sep 2015, 09:05
Kontaktdaten:

Re: Gecachter Bildername

Beitrag von samse » Di 20. Mär 2018, 15:07

Hi Faar

Danke für deine ausführliche Antwort. So etwas in der Art habe ich mir auch überlegt. Ich dachte, dass es vielleicht ne einfachere Methode geben würde.

Grüsse
Samuel

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Gecachter Bildername

Beitrag von Oldperl » Di 20. Mär 2018, 19:37

Servus,
Faar hat geschrieben:
Di 20. Mär 2018, 14:29
Man könnte hier eine Funktion nachbauen, die zusätzlich noch den Dateinamen anfügt, aber praktisch wird das schwer, weil das Cache System dann die Datei nicht erkennen kann.
Und warum sollte das das Cache-System nicht erkennen? Wenn ich an allen Stellen, einschließlich der Auswertung, einen Teil des gecachten Dateinamens im Klartext hinzufüge, so arbeitet das System damit genauso, als wenn es nur gehashte Namen wären.
Faar hat geschrieben:
Di 20. Mär 2018, 14:29
Das Caching macht ja nur dann Sinn, wenn sich Bilder ändern könnten, wie bei News oder so.
Aber wenn Bilder statisch und in richtiger Größe auf dem Verzeichnis liegen, braucht es kein Caching.
Da möchte ich widersprechen. Das Caching macht beispielsweise auch Sinn um den Pfad der Originaldatei zu verschleiern. Nutze ich diesen nur zur Generierung des Caches und nicht als URL im Frontend, so kann der Besucher nur an die gecachten Dateien, und nicht an das Original ran. So kann ich zum Beispiel hochauflösende Originale herunter rechnen und anbieten, ohne das der Besucher die originale Datei herunterladen kann bzw. den Pfad dafür erhält. Ebenso kann ich damit meine Pfadstruktur für Suchmaschinen verschleiern. Es kommt also immer auf die Anwendung an.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Gecachter Bildername

Beitrag von Faar » Mi 21. Mär 2018, 09:26

Oldperl hat geschrieben:
Di 20. Mär 2018, 19:37
Servus,
Moin!
Faar hat geschrieben:
Di 20. Mär 2018, 14:29
Man könnte hier eine Funktion nachbauen, die zusätzlich noch den Dateinamen anfügt, aber praktisch wird das schwer, weil das Cache System dann die Datei nicht erkennen kann.
Und warum sollte das das Cache-System nicht erkennen? Wenn ich an allen Stellen, einschließlich der Auswertung, einen Teil des gecachten Dateinamens im Klartext hinzufüge, so arbeitet das System damit genauso, als wenn es nur gehashte Namen wären.
Das Cache System ist da sehr simple und macht aus verschiedenen und zusammengesetzten Daten einen md5 String.
Wenn man nun aus SEO Gründen da einen Dateinamen anfügt, sieht das vielleicht so aus:
Oldperl_beim_Kaffee_BF3C3E76B1B0053FDE376A6749143ECC.jpg

Würde das Caching System nun nachschauen, ob da ein Bild schon im Cache liegt, würde es nach einem BF3C3E76B1B0053FDE376A6749143ECC.jpg suchen, aber nicht nach Oldperl_beim_Kaffee_BF3C3E76B1B0053FDE376A6749143ECC.jpg, und folglich nichts finden und das Originalbild neu cachen.
Folglich müsste das gesamte Bildcaching angepasst werden. Nur einen Namen anfügen genügt nicht.
Natürlich könnte man hier den Cache-Dateinamen wieder aufsplitten und nur den md5 Teil (BF3C3E76B1B0053FDE376A6749143ECC) wieder für die Cache Suche verwenden, dann passt das wieder ins Contenido Kontinuum.

Trotz alledem muss man am Code etwas machen.
Da es nur eine Funktion ist, kann man diese vielleicht einfach kopieren und anpassen und stattdessen im Modul verwenden.
Was natürlich nicht mehr bei Modulen geht, die alles in Core-Klassen abgekapselt haben, wie dem Teaser-Image.
Faar hat geschrieben:
Di 20. Mär 2018, 14:29
Das Caching macht ja nur dann Sinn, wenn sich Bilder ändern könnten, wie bei News oder so.
Aber wenn Bilder statisch und in richtiger Größe auf dem Verzeichnis liegen, braucht es kein Caching.
Da möchte ich widersprechen.
:shock:
Das Caching macht beispielsweise auch Sinn um den Pfad der Originaldatei zu verschleiern.
Ja, da habe ich verallgemeinert, bin aber in Gedanken vom SEO ausgegangen.
Bei SEO wähle ich eine Bild-Datei sehr bewusst aus und forme mir den Bildnamen.
Beispiel "Kommutator": https://www.google.de/search?client=fir ... I8kS4B9NUs
Ich möchte dann ja, dass dieses Orignal gefunden wird.
Das ist dann nicht mehr das Originalbild aus der Kamera, sondern das Original, das ich für SEO erschaffen habe.
Also meisten fachgerecht ausgewählt, skaliert und zugeschnitten.
Das soll 1 zu 1 so ins Internet, mit exakt dem Namen.

Natürlich sind da in der Mehrzahl die anderen Fälle, in denen es nur darum geht, ein hochgeladenes Bild für ein Teaser-Programm oder einer Galerie verkleinert darzustellen und nicht das 14 Megapixel Bild im Uploadverzeichnis.
Und die meinte sicher Ortwin.

Was Ortwin hier beschreibt, ist eine feine Sache auch für Daten, die nicht jeder herunter laden können soll, sondern z.B. nur eingeloggte User im "geschützen Frontend-Bereich" und dann auch vielleicht nur für eine bestimmte Zeit lang.
Nutze ich diesen nur zur Generierung des Caches und nicht als URL im Frontend, so kann der Besucher nur an die gecachten Dateien, und nicht an das Original ran. So kann ich zum Beispiel hochauflösende Originale herunter rechnen und anbieten, ohne das der Besucher die originale Datei herunterladen kann bzw. den Pfad dafür erhält. Ebenso kann ich damit meine Pfadstruktur für Suchmaschinen verschleiern. Es kommt also immer auf die Anwendung an.
Das Unterverzeichnis im Upload (mit den Originalen) wird dann einfach mit .htaccess gegen außen abgesperrt.

Code: Alles auswählen

order deny,allow
deny from all
allow from 127.0.0.1
Ab Apache 2.4 sieht es etwas anders aus: https://httpd.apache.org/docs/2.4/upgrading.html
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Gecachter Bildername

Beitrag von Oldperl » Mi 21. Mär 2018, 09:56

Faar hat geschrieben:
Mi 21. Mär 2018, 09:26
Das Cache System ist da sehr simple und macht aus verschiedenen und zusammengesetzten Daten einen md5 String.
Wenn man nun aus SEO Gründen da einen Dateinamen anfügt, sieht das vielleicht so aus:
Oldperl_beim_Kaffee_BF3C3E76B1B0053FDE376A6749143ECC.jpg

Würde das Caching System nun nachschauen, ob da ein Bild schon im Cache liegt, würde es nach einem BF3C3E76B1B0053FDE376A6749143ECC.jpg suchen, aber nicht nach Oldperl_beim_Kaffee_BF3C3E76B1B0053FDE376A6749143ECC.jpg, und folglich nichts finden und das Originalbild neu cachen.
Folglich müsste das gesamte Bildcaching angepasst werden. Nur einen Namen anfügen genügt nicht.
Davon habe ich auch nicht gesprochen. Es ist da schon die Generierung der Cache-Dateien gemeint, denn nur an der Stelle macht die Anpassung des Dateinamens Sinn. Und ja, dafür benötigt man dann einen Eingriff im Core bzw. eigene Funktionen zur Bildskalierung.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Antworten