Datum von Dateien auf Webservern ändern?

06 07 2005

Ich bin jetzt schon einige Zeit auf der Suche nach einem FTP–Pro­gramm, einem Web-​Filemanager (PHP) oder irgend­ei­ner ande­ren Lösung, mit der man das Datum und die Uhr­zeit einer Datei auf dem Webs­pace ändern kann. Dies wäre in ers­ter Linie für Folderblog-​User inter­es­sant, da man so die Sor­tier­rei­hen­folge (Fol­derblog sor­tiert nach der last modi­fi­ca­tion time) im Pho­to­blog ändern könnte. Ich wollte auch bei mei­nen älte­ren Pho­tos von der neuen Mög­lich­keit, die EXIF–Daten aus­ge­ben zu kön­nen, Gebrauch machen. Lädt man diese geän­der­ten Pho­tos aber neu auf den Ser­ver, erschei­nen sie auto­ma­tisch als neu­es­ter Ein­trag in der Gale­rie. Hier wäre eine Ände­rung der Datei­da­ten sehr hilfreich.

Bei mei­nen Nach­for­schun­gen habe ich fol­gende zwei Mög­lich­kei­ten zum ändern des Datums einer Datei herausgefunden:

1. MDTM

MDTM steht für last Modifi­ca­tion Time und dient nor­ma­ler­weise dem Aus­le­sen der letz­ten Ände­rung einer Datei. Dazu ruft man in den meis­ten FTP–Cli­ents die Funk­tion “FTP–Com­mands” (oder ähnli­ches) auf und wählt dort den Ein­trag QUOTE. Dann öffnet sich ein Kom­man­do­zeile in der man den Befehl:

MDTM filename

ein­gibt. Dar­auf­hin erscheint im Sta­tus­fens­ter die Aus­gabe der Datei mit dem ent­spre­chen­den Ände­rungs­da­tum. Zum Set­zen des Datums wird der Befehl so aufgerufen:

MDTM YYYYMMDD filename

Also z.B. “MDTM 20050701 test.jpg”. Pro­blem ist: Auf dem Ser­ver muß der MDTM–Befehl zuge­las­sen sein und auch das Set­zen des Datums unter­stüt­zen. Ent­we­der mache ich dabei was grund­le­gend falsch oder mein Ser­ver unter­stützt den Befehl nicht völ­lig. Das Aus­le­sen der Zeit funk­tio­niert, das Set­zen anschei­nend nicht. FTP–Cli­ents wel­che die Option “Datei­da­tum beim Upload bei­be­hal­ten” anbie­ten, ver­wen­den eben jenes MDTM–Kom­mando. Unter­stützt also der Ser­ver den Befehl nicht (völ­lig), dann funk­tio­niert auch diese Option nicht.

2. touch()

Die PHP–Funk­tion touch() erfüllt genau die Anfor­de­run­gen. Mit Ihr kann man nicht nur das Datum der letz­ten Ände­rung einer Datei (filemtime), son­dern auch den letz­ten Zugriff (filea­time) lesen und schrei­ben. Nun habe ich beim Stö­bern durch die PHP–Scripte die­ser Welt einen PHP–File­ma­na­ger gefun­den, der auch Datei­ma­ni­pu­la­tio­nen mit­tels touch() zuläßt. Aber: die Seite des Pro­gramm­au­tors ist zur Zeit down. Nun ver­su­che ich gerade in PHP ein Script zu schrei­ben, mit dem ich auf rudi­men­tärste Art die rele­van­ten Daten einer Datei mani­pu­lie­ren kann. Es könnte sich hier aber noch das Pro­blem erge­ben, das die Ände­run­gen durch die touch()-Funktion nur mög­lich sind, wenn man Rech­te­in­ha­ber (im UNIX’schen Sinne) der zu ändern­den Datei ist. Beim Auf­ruf eines PHP–Scripts ist man aber zunächst ein­mal ein “Nie­mand” oder jeden­falls kein “Owner” der Dateien.

Soweit der aktu­elle Stand. Mir ist klar, daß es wirk­lich wich­ti­gere Dinge gibt als das Datei­da­tum auf einem Web­ser­ver zu ändern, aber fas­zi­nie­rend ist, daß offen­sicht­lich kaum Lösun­gen exis­tie­ren die dies ermög­li­chen und ich ande­rer­seits auch nicht erken­nen kann, warum diese Datei­ope­ra­tion so schwie­rig zu hand­ha­ben ist, wo man doch die Files sonst belie­big löschen, ver­schie­ben und umben­nen kann.

Falls irgend jemand noch andere Lösungs­an­sätze oder Tips zu den vor­ge­nann­ten Mög­lich­kei­ten parat hat, fin­det er in mir einen dank­ba­ren Abnehmer. :)

Nach­trag: Ein Work­a­round für die touch()-Funktion ist hier zu finden.

Konversation  

Kommentare



Konversation  

Artikel kommentieren








Kommentare können mit (X)HTML-Elementen oder mit Textile ausgezeichnet werden. Es werden nicht alle Elemente unterstützt. Diesbezüglich gilt: »Weniger ist mehr.«

Smallprint

Impressum & Co.

HA·BÁ·RI