Downloadmod löscht Datei vom Server.

Support zu den Modifikationen (MODs) von Entwickler OXPUS für das phpBB 3.0.x
Antworten
MDuss
Beiträge: 149
Registriert: So 30. Dez 2012, 10:26

Downloadmod löscht Datei vom Server.

Beitrag von MDuss »

Hi Leute.

Ich habe da ein kleines Problem, dass ich so auch noch nie hatte, auch nicht mit dem alten Downloadmod für phpbb 2.X

Folgende Ausgangsstellung.
Ich habe für ein Spiel eine Mod hochgeladen, die recht Groß ist (die Datei ist 2.3GB groß).
Jetzt wollte ich diese Datei ganz normal über die ACP in die Downloaddatenbank eintragen.

Das Forum ist auf dem neuesten Stand, genauso wie auch die Dowloadmod.

Ich habe also im Formular in der ACP alles ausgefüllt wie immer.
Aber wenn ich das Formular absenden will, um die Datei in der Datenbank ein zu tragen, dann erscheint die rote Warnung, dass diese Datei nicht auf dem Webserver vorhanden ist.
Wenn ich dann mit dem FTP Programm auf dem Server nachsehe, dann ist die Datei plötzlich gelöscht.

Ich habe dann die Datei wieder neu hochgeladen und das ganze nochmal probiert und habe vor dem absenden noch einmal alles genau nachgesehen, ob ich irgendwo einen Fehler gemacht habe, aber nach dem absenden wieder das gleiche.
Die Datei war gelöscht und ich erhielt die Meldung, dass die Datei nicht da ist.
Dann habe ich einfach mal während dem upload der Datei den Upload abgebrochen, so dass die Datei nur ca. 10MB groß war auf dem Server.
Das hat dann wieder funktioniert mit dem einbinden in die Datenbank über die ACP.

Also scheint mir der Downloadmanager ein Problem mit der Dateigröße zu haben.
Warum auch immer.
Aber er scheint mit der Dateigröße von 2.3GB ein Problem zu haben. Der CHMOD Wert für die Datei habe ich auch mal vorher auf 777 eingerichtet, hatte aber keine Auswirkung. Ich habe vorher nie den Wert auf 77 geändert, das hat immer der Downloadmanager von sich aus gemacht.

Ich könnte ja jetzt hingehen, und das Archiv splitten, so dass die Einzelteile nicht mehr so groß sind, aber es wäre mir dann doch lieber, wenn ich die Datei am Stück einbinden könnte.

Andere Möglichkeit wäre natürlich auch, dass ich einfach eine kleinere Datei (eine einfache .txt Datei) hoch lade, und anschließend die Datenbank von Hand manipuliere, dass geht ja auch. Einfach die Einträge in der Datenbank für diesen Eintrag dann von Hand anpassen, also den Hash5 Wert für den Dateinamen, die Datei selbst, die Dateigröße usw... Versucht habe ich so einen Umweg bisher noch nie, aber in der Theorie sollte es gehen. Dann nur noch die Datei entsprechend dem Hash5 Wert umbenennen und den CHMOD Wert auf 777 ändern.

Wäre aber dennoch gut, wenn es halt so funktionieren würde, wie es eigentlich sollte.
Bleibt sich auch die Frage, wenn ich die Datenbank von Hand so ändere, ist damit das Problem umgangen, oder könnte es wieder Probleme geben, wenn ein user so auf die Datei über den DL-Manager zugreifen will. Von wegen, Datei kann nicht richtig angefordert werden, nur mal so als Beispiel.

Das Problem habe ich bisher nur bei dieser einzigen Datei gehabt. Ist auch die einzige Datei bisher die so extrem groß ist und das ist so weit ich das weiß, die einzige überhaupt mit einer solchen Größe.
Alle anderen 1741 Dateien gingen ohne Probleme.

Dies betrifft die aktuelle Version des Downloadmanagers 6.5.19 für phpbb 3.0.11

MfG
MDuss
Benutzeravatar
oxpus
Chief handy-man
Beiträge: 2660
Registriert: Do 13. Dez 2007, 23:06
Wohnort: Irgendwo im I-Net
Kontaktdaten:

Re: Downloadmod löscht Datei vom Server.

Beitrag von oxpus »

Du willst eine Datei über HTML hochladen, welche 2,3GB groß ist?
Das ist wirklich mutig.

Um es kurz zu machen:
PHP und der Webserver (z. B. Apache), welche auf deinem Server laufen, haben eingestellte Limits was die Datengröße von z. B. Uploads oder POST-Daten betrifft.
In der Regel sind z. B. in PHP nur wenige Megabyte eingestellt, die eine Datei zum Upload haben darf. Für ca. 98% der Fälle auch mehr aus ausreichend.
Wenn du also eine 2,3GB Datei hochladen willst, ist diese schlicht nicht vorhanden, auch wenn der Upload bereits Stunden gedauert hat.
PHP kann die Datei dann einfach nicht verarbeiten und verwirft den Upload, der über die POST-Daten vom Webserver kommen.

Fazit:
Upload abgeschlossen, Datei futsch, bzw. "scheinbar" nicht vorhanden.

Das hat dann auch nichts mit der Download MOD zu tun, sondern mit den Einstellungen des Servers, auf dem du die MOD verwendest.
Auch das phpBB 3, welches du benutzt, kann daran nichts ändern.

Empfehlung:
Solange du nicht die PHP-Einstellungen in der verwendeten php.ini selber anpassen kannst (hierfür wären mindestens die Werte für post_max_size und upload_max_filesize anzupassen) und/oder dein Hoster nicht anpssen will, solltest du solch große Dateien besser per FTP auf deinen Server hochladen und dann per ACP ein den Download Bereich inbinden.

Achtung:
Aber auch beim Einbinden über das ACP gibt es mindestens ein Limit!
Zur Berechnung des Dateihashes, wenn du ihn verwenden willst, muss PHP die Datei auch berechnen können. Dazu gibt es mehrere Verfahren, bei gigabytegroßen Dateien nicht abzustürzen. Also muss auch in PHP entsprechender Speicher eingestellt sein, um die Datei bearbeiten zu können. Sofern dein Webspace/Server nicht soviel hat, also dann puffern muss, kann das dann auch schon mal viele Minuten bis zu Stunden dauern, wobei dann andere Begrenzungen die weitere Verarbeitung auch wieder vorzeitig beenden können.

Wenn alles nichts hilft, solltest du die Datei wirklich in mehrere Teile aufteilen und diese dann als "Serie" in den Download Bereich einfügen.
Wie gesagt:
Die MOD arbeitet in den Grenzen, die der Server, Webserver oder PHP mitbringen und kann diese nicht umgehen. Je größerer die Datei also ist, desto eher kann die MOD diese nicht wie erwartet verarbeiten.

Und BTW:
Auch wenn es mit anderen großen Dateien prima funktioniert hat, bitte zudem auch prüfen, ob durch ein Update des Webspaces/Servers seitens deines Hosters nicht irgendwelche Einstellungen verändert wurden, die die besagten Limits wieder Richtung Standardeinstellung geändert haben.

Und zuletzt bitte auch hier noch mal nachschauen: http://phpbb3.oxpus.net/viewtopic.php?f=10&t=161
Karsten Ude
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
MDuss
Beiträge: 149
Registriert: So 30. Dez 2012, 10:26

Re: Downloadmod löscht Datei vom Server.

Beitrag von MDuss »

Hi Oxpus.

Also die Datei habe ich mit einem FTP Programm auf den Server hochgeladen. Die Datei ist also schon online und ich will diese nur über die ACP in die Datenbank eintragen.

Was die Hash5 Berechnung angeht, so bricht das ganze schon nach ein paar Sekunden ab, und ich sehe die Fehlermeldung.
Bei einer 1.5 GB großen Datei z.B. hatte ich keine Probleme. Da hatte der Server auch einige Sekunden so ca. eine halbe Minute lang gerechnet, bis der Server den hash5 Wert berechnet hatte.
Aber bei dieser einen Datei sehe ich ja schon nach ein paar Sekunden die Meldung, dass die Datei fehlt. Der Server scheint hier erst gar nicht nach dem Hash5 Wert gerechnet zu haben, da die Datei ja direkt gelöscht wird.

Was die Limits in der php.ini angeht, so habe ich diese so eingestellt, dass ich auch größere Dateien einbinden kann.
Die Werte für
upload_max_filesize = 500M
post_max_size = 5120M
max_execution_time = 27000

sind dafür eigentlich sehr großzügig ausgelegt.

Die User selbst dürfen max. 500 Megabyte große Dateien hochladen. Von daher ist diese Einstellung so bisher immer korrekt gewesen. Die Scriptlaufzeit ist mit 27000 auch deutlich groß genug, um einen Hash5 Wert zu berechnen. Sind immer hin 7,5 Stunden.

Der Webserver gehört komplett uns, da kann kein Webhoster eben mal ein Update fahren, und uns die Werte verstellen.
Ist ein privater Webserver, der uns selbst gehört.

Wenn ich die Datei so hoch lade, und ich binde über die ACP eine einfache .txt Datei stellvertretend ein, und trage die Datei wie ich bereits in meinem Eröffnungspost beschrieben habe von Hand in die Datenbank ein, sollte dann alles laufen, oder bekommt der User, der die Datei herunterladen will ein Problem, oder kann es wieder passieren, dass die Datei vom Server gelöscht wird?

MfG
MDuss
Benutzeravatar
oxpus
Chief handy-man
Beiträge: 2660
Registriert: Do 13. Dez 2007, 23:06
Wohnort: Irgendwo im I-Net
Kontaktdaten:

Re: Downloadmod löscht Datei vom Server.

Beitrag von oxpus »

Die MOD löscht keine Datei vom Server, nur weil für diese der Hash berechnet wird oder die Datei über das ACP in den Download Bereich übernommen werden soll.
Da sind ganz andere Limits ggf. Schuld dran.
Die Datei wird über PHP beim Einbinden via ACP auch einmal umbenannt, also in einen Hash-Dateinamen.
Ggf. kann bei der Dateigröße von 2,3GB dann auch ein Fehler passieren, der die Datei zerbröselt.
Aber das ist bei solch großen Dateien auch immer ein Problem, diese mittels PHP-Script bearbeiten zu wollen.
Karsten Ude
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
MDuss
Beiträge: 149
Registriert: So 30. Dez 2012, 10:26

Re: Downloadmod löscht Datei vom Server.

Beitrag von MDuss »

Hi Oxpus.

Dann versuche ich mal den Trick, und lade eine einfach Text Datei hoch, und manipuliere dann die Datenbank von Hand, um die Datei rein zu bekommen.
Mal schauen ob das klappt.

MfG
MDuss
MDuss
Beiträge: 149
Registriert: So 30. Dez 2012, 10:26

Re: Downloadmod löscht Datei vom Server.

Beitrag von MDuss »

Hi oxpus.

Leider hat mein Versuch so nicht geklappt.
Auch wenn ich die Dateieinträge nachträglich bearbeite, und für den RealDateiname und den Has5 Wert der Datei usw. die Werte eintrage, undd ann im DL-Manager auf Downloadklicke, dann erhlete ich plötzlich eine Datei namens download.html zum downloaden.

Was mir allerdings aufgefallen ist: Wenn ich die Eintrage für die Datei usw. bearbeite, dann wird in der Detailansicht des Downloads der Eintrag für
Letzte Dateiaktualisierung: auf den 01.01.1970 01:00 Uhr gesetzt.

Eventuell liegt es daran.

Aber: Wo kann ich diesen Wert in der Datenbank finden, um ihn auf den richtigen Wert zu korrigieren. Einen entsprechenden Umrechner habe ich, um die Uhrzeit in diesen Zahlenwert um zu rechnen. Ich habe nur nicht herausfinden können, wo dieser Wert gespeichert ist.

MfG
MDuss

[Edit:] Hi oxpus. Wollte nur sagen, dass ich jetzt den Weg über gesplittete Archive nehme.

MfG
MDuss
Benutzeravatar
oxpus
Chief handy-man
Beiträge: 2660
Registriert: Do 13. Dez 2007, 23:06
Wohnort: Irgendwo im I-Net
Kontaktdaten:

Re: Downloadmod löscht Datei vom Server.

Beitrag von oxpus »

Also zum einen braucht der Server genug Speicher, den PHP auch verwenden muss, um den Dateihash zu errechnen.
Zum anderen wird die Datei kopiert, um sie umzubenennen. Es wird die Datei also verdoppelt und erst danach entfernt.
Wenn dabei Limits erreicht werden, sind Kopie und Original unter Umständen weg.
Wie gesagt: Übergroße Dateien sind immer heikel, diese mittels PHP bearbeiten zu wollen.

Die Zeitstempel für das hinzufügen und bearbeiten von Downloads werden übrigends in den Feldern add_time und change_time in der Tabelle phpbb_downloads festgehalten.
Karsten Ude
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
MDuss
Beiträge: 149
Registriert: So 30. Dez 2012, 10:26

Re: Downloadmod löscht Datei vom Server.

Beitrag von MDuss »

Hi Oxpus.

Auf dem Server sind derzeit von 500GB nur 49GB belegt. Es sind also noch rund weg 450GB frei.

Was die Zeit angeht, so meine ich folgendes.
Wenn ich einen Download hinzufüge, dann werden ja die Werte für add_Time und Change_time auf das aktuelle Datum gesetzt.

Aber es gibt da auch eine Leiste die nennt sich in der Detailübersicht:
Letzte Dateiaktualisierung

Und dieser Wert springt, wenn ich über phpMyadmin die Hashwerte ändere zurück auf den 01.01.1970 01:00

Wie gesagt, wen ich die Werte in der Datenbank von Hand anpasse, um von der kleinen Textdatei auf die große Mod Datei um zu verweisen, dann springt dieses Datum entsprechend um.
Ich habe, bevor ich alles geändert habe, alle Werte dreimal geprüft, also den Dateiname, wie er laut Hash5 heißen müsste, die Dateigröße, den Hash5 Wert der Datei selbst usw.
Das alles hatte gestimmt.

Aber nachdem ich die Werte abgesendet hatte, und ich den Mod testweise herunterladen wollte, bekam ich als Datei plötzlich nur noch eine download.html Datei angeboten.

Und das hat mich zusätzlich irritiert.

Nun ja, jetzt habe ich den Mod in drei Teilarchive gesplittet, und das geht.
Jetzt weiß ich auf jeden Fall, das ich Mods kleiner 2GB halten muss, damit es keine Probleme gibt.

Obwohl in der 5.X Version für PHPBB2 gab es dieses Problem noch nicht, da hatte ich die Mod mit 2.3GB am Stück in die Datenbank eingetragen, ohne dass es Probleme gab.
Also die Datei per FTP auf den Server, und dann über ACP hinzugefügt.

MfG
MDuss
Antworten