Beitrag von Alex (164 Beiträge) am Samstag, 21.Mai.2011, 11:09.
zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
Hallo
im laufe der Zeit haben sich bei mir knapp 400000 Bilder im /files/ Ordner aus unterschiedlichen db gesammelt. Etwa 6000 brauche ich davon.
Da immer wider Bilder verschwunden sind habe ich angegeben, Bilder automatisch löschen: Nein
Nun stehe ich vor dem Problem, wie ich mir diese Bilder anzeigen lassen kann und ob das Bild noch mit einem Eintrag verknüpft ist.
Weiß jemand Rat?
LG und nen schönen Samstag
Alex
Antworten
Beitrag von Pouraga (1396 Beiträge) am Sonntag, 22.Mai.2011, 11:15.
Re: zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
Wenn du Lizenz euf eigenen server hast, dann kannst du auf den perl Befehle wie rename z.B. zugreifen.
Ungetestetes Beispiel um z.B. alle Dateien einer Datenbank in ein anderen Ordner zu verschieben:
$fpht = <<Kompletter systempath zu deinem Bilderordner>>;
$datenbank = <<Deine datenbank>>;
get "Id==$Id",$datenbank,"loopvar";
mkdir("$fpht/$datenbank") unless -e "$fpht/$datenbank";
while(get_next("loopvar")){
$da = <<Feld mit Bild>>;
next if $da =~ /^$datenbank/ # Nichts machen wenn schon geändert
$zd = "$datenbank/$da"; # Ziel ist ein ordner der so heisst wie die DB
rename("$fpht/$da","$fpht/$zd"); # Hier wird Verschoben
mod "Id==$Id",["<<Feld mit Bild>>",$zd],$datenbank; # Datenbankeintrag auch ändern
}
Alles was danach in /files bleibt ist schonmal nicht in "dieser" Datenbank. (Bedenke Laufzeitprobleme beim Durchlaufen aller Einträge bei einer so grossen Datenbank)
Bei der Version 3 und Miete gibt es eine ähnliche Möglichkeit mit Baseportal Befehlen.
Antworten
Beitrag von Pouraga (1396 Beiträge) am Sonntag, 22.Mai.2011, 11:24.
Re: Re: zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
Antworten
Beitrag von Alex (164 Beiträge) am Sonntag, 22.Mai.2011, 11:50.
Re: Re: zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
Hallo Pouraga
ich habe keinen eigenen Server. Bräuchte also Baseportalbefehle.
Es müssten doch eigentlich alle, die Bilder hochladen, mal vor diese Problem stehen, oder?
Antworten
Beitrag von Pouraga (1396 Beiträge) am Sonntag, 22.Mai.2011, 12:10.
Re: Re: Re: zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
Antworten
Beitrag von Alex (164 Beiträge) am Sonntag, 22.Mai.2011, 12:48.
Re: Re: Re: Re: zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
Das mit dem Einspeichern habe ich verstanden. Schade dass ich das nicht schon früher gewusst habe.
Aber wie ich die Bilder dann abrufe, kann ich nicht erkennen.
funktioniert das auch mit einem einfachen:
do_all "db=/blabla ?
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 22.Mai.2011, 18:09.
Re: Re: Re: Re: Re: zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
Hi Alex,
ich würde dir ein Script schreiben, was alle Einträge des Files-Ordners überprüft und dir eine Liste mit den zu löschenden Bildern erstellt (die Bilder kommen doch _alle_ aus "Hunde", oder?). Die könnte ich dann auch noch automatisch löschen lassen. Das geht direkt auf dem Server sicher schneller als mit bp-mitteln.
Wenn du den Pfad mit in dem db-feld angibst, stehst du in ein paar Jahren wieder am selben Punkt, nur in einem andern Verzeichnis ;)
Du solltest eine Löschroutine für die Datensätze programmieren, die die Bilder dann mit löscht (oder in einen anderen Ordner verschiebt - siehe rename bei Pouraga) und auf das bp-interne Löschen verzichten.
Grüße
Sander
Antworten
Beitrag von Alex (164 Beiträge) am Sonntag, 22.Mai.2011, 18:21.
Re: Re: Re: Re: Re: Re: zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
Hey Sander
leider nein.
Die Bilder im /files/ kommen aus den Datenbanken:
Hunde
Katzen
Kleintiere
Bilder/Bildup
Aus dem Grund hab ich nun Dienstag die neuen Ordner angelegt. Hier werden die Bilder dann nach Datenbanken gespeichert.
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 22.Mai.2011, 22:42.
Re: Re: Re: Re: Re: Re: Re: zu viele Bilder im /files/ Ordner - wie anzeigen und löschen?
naja, auch nicht so das Problem.
Dann muss es halt gegen alle DB's geprüft werden.
Antworten