PDA

View Full Version : [German] ioftpd und mysql db


r3flux
02-01-2005, 04:57 AM
servus forum!

ich hab zur zeit raidenftpd als ftp server laufen. als zipscript verwende ich zChecker. da das script aber einige schönheitsfehler hat, bin ich auf der suche nach einer alternative.

dabei ist mir besonders wichtig, dass neue (mp3) uploads in eine lokale mysql datenbank (alternativ access datenbank) eingetragen werden. aber nicht jedes file sondern nur der ordnername mitsamt den daten wie dateianzahl, größe, upload-datum usw, quasi ne eigene kleine dupe-datenbank. das sollte dann aber natürlich nur passieren, wenn auch alle files komplett sind und keine crc fehler haben. ebenfalls schöne wäre, wenn das script id3v1 und/oder id3v2 tags richtig erkennt. optimal wäre es, wenn auch vbr richtig erkannt wird. luxus wäre noch irc annoucements bei neuen uploads ;)

bietet ioftpd bzw. ein script für ioftpd sowas an? in der doku zu iobanana konnte ich zwar schon was über ne datenbank lesen, aber was genaueres konnte ich dazu nicht finden.

thx für infos :)
r3flux

jeza
02-01-2005, 10:11 AM
hi

es gibt einige zipscripts fur ioftpd

projectzs,php_psio,iozs,iosfv
du kannst sie mit dzsbot(windrop) verbienden so das du mirc anounce hast

da ist noch iobanana das ist alles in einem zipscript+windropbot

alle zipscripts checken files(sfv+.diz) and haben auch id3 suport
und machen tags mit size info total files count und id3 info

fur deine db kannst du ein dupe script benutzen
es logt dir(file) names and date uploaded
leider kein id3 info und files count oder so

check php_psio der hat sql support aber ich weis nich wozu. must mal nachschauen

r3flux
02-01-2005, 12:19 PM
Originally posted by jeza
fur deine db kannst du ein dupe script benutzen
es logt dir(file) names and date uploaded
leider kein id3 info und files count oder so ja leider is das aber ein eindeutiges k.o. kriterium. name des ordners, anzahl der dateien und dateigröße muss sein, sonst brauch ich nich von raidenftpd zu ioftpd wechseln :p

gibts denn irgendwie (in ioftpd oder in einem script) einen trigger, der aufgerufen wird, wenn der von einem gesamten ordner erfolgreich beendet wurde? also nachdem alle dateien auf den ftpserver geladen wurden und alle dateien crc ok sind (irgendwie sowas wie "OnUploadFinished" :confused: ) oder so dann kann ich mir selbst ein kleines php script schreiben was die daten aus dem jeweiligen verzeichnis ausliest.

thx for help,
r3flux

jeza
02-01-2005, 04:08 PM
eine moglichkeit ist es trigger on COMPLETE rls in chan
tcl script das mit sql verbindet ist und dann alle infos rein gibt

eine andere
OnUploadComplete check if rls ist complete und screib into db

argumets OnUploadComplete
full\path\to\file_name CRC virtual/path/file_name
(d:\mp3\0201\bla\file01.mp3 CRC /mp3/0201/file01.mp3)

dann check das dir d:\mp3\0201\bla\ fur complete tag und write info to db

if complete tag noch nicht da exit

r3flux
02-02-2005, 03:46 AM
Originally posted by jeza
eine andere
OnUploadComplete check if rls ist complete und screib into db

argumets OnUploadComplete
full\path\to\file_name CRC virtual/path/file_name
(d:\mp3\0201\bla\file01.mp3 CRC /mp3/0201/file01.mp3)

dann check das dir d:\mp3\0201\bla\ fur complete tag und write info to db

if complete tag noch nicht da exit Ja, das ist eine gute Idee :)

Was kann ich denn alles beim OnUploadComplete als Parameter angeben? Kann ich sowas wie:

OnUploadComplete = E:\php\php.exe -f E:\files\addFolder.php [full_path_to_folder]

Also das ich dann ich dann ein PHP Script in der Kommandozeile aufrufe und als Parameter das Verzeichnis übergebe, in das gerade eine Datei hochgeladen wurde?

Dann kann ich nämlich alles weitere mit PHP machen, also prüfen ob das Release komplett ist und falls ja, einen Eintrag in der Datenbank vornehmen.

Vielen Dank für deine Hilfe bisher :))

thx,
r3flux

jeza
02-02-2005, 06:30 AM
OnUploadComplete = E:\php\php.exe -f E:\files\addFolder.php [full_path_to_folder]

-->

OnUploadComplete = EXEC E:\php\php.exe -f E:\files\addFolder.php


und dann brauchst nur die arguments tu checken

argv[1] = full\path\plus\filename
argv[2] = CRC.of.filename
argv[3] = virtual/path/plus/filename

jeza
02-02-2005, 06:33 AM
wichtig ist das dein script nachdem zipscript fertig ist rls checkt

also
OnUploadComplete = EXEC zipscript.exe
OnUploadComplete = EXEC dein script blabla

r3flux
02-02-2005, 06:39 AM
Originally posted by jeza
OnUploadComplete = E:\php\php.exe -f E:\files\addFolder.php [full_path_to_folder]

-->

OnUploadComplete = EXEC E:\php\php.exe -f E:\files\addFolder.php


und dann brauchst nur die arguments tu checken

argv[1] = full\path\plus\filename
argv[2] = CRC.of.filename
argv[3] = virtual/path/plus/filename

Ja, das ist ja wunderbar :)

Noch eine Frage: Kann ich auch noch mehrere Argumente an das Script übergeben (Username, Usergruppe, Speed usw) oder gibt es nur die 3 Argumente?

Thx nochmal :)
r3flux

jeza
02-02-2005, 07:39 AM
ioftpd.env

getenv("USER"),getenv("GROUP"),getenv("PATH"),.....

jeza
02-02-2005, 07:42 AM
print(" User.........: " . getenv("user") . "\n");
print(" Credits......: " . round(getenv("credits")) ." MB\n");

r3flux
02-04-2005, 05:02 AM
scheint alles zu funktionieren :)

aber ich hab auch gesehen, dass ioBanana und ioZS einen onReleaseComplete trigger eingebaut haben. da kann ich dann einfach das script aufrufen wenn der release komplett und 100% crc ok is.

werde das mal die tage mal austesten ;)