Anpassung des Speicherortes für Anhänge nach Datum

Deutschsprachiges Forum für Diskussionen und Fragen zu MantisBT

Moderators: Developer, Contributor

Post Reply
jacekw@gmx.de
Posts: 2
Joined: 21 Feb 2019, 10:09

Anpassung des Speicherortes für Anhänge nach Datum

Post by jacekw@gmx.de »

Liebe Gemeinschaft,

mein erstes Posting hier im Forum ;-)

Ich habe folgendes Anliegen: in meiner Konfiguration ist der Parameter „g_absolute_path_default_upload_folder“ wie folgt definiert:

Code: Select all

# config/config_inc.php
$g_absolute_path_default_upload_folder = '/mnt/mantis.attachments/' . date( 'Y/m/d/' );
if( !is_dir( $g_absolute_path_default_upload_folder ) ) {
    mkdir( $g_absolute_path_default_upload_folder, 0770, true );
}
Der Grund dafür ist, dass es bereits über 300.000 Anhänge sind, und die möchte ich sie nicht flach im einem Verzeichnis liegen haben.

Jedoch ist die Lösung nicht optimal, da beim jedem Update von Mantis (zur Zeit die Version 2.19.0) die Datei file_api.php angepasst werden muss:

Code: Select all

+++ file_api.php	2019-02-21 11:37:35.705041403 +0100
@@ -305,6 +305,18 @@
 		}
 	}
 
+	if( is_blank( $t_path )  ) {
+		$t_bug_file_table = db_get_table( 'bug_file' . 'table' );
+		db_param_push();
+		$t_query = 'SELECT folder FROM {bug_file} WHERE diskfile=' . db_param();
+		$t_result = db_query( $t_query, array( $t_basename));
+		$t_row = db_fetch_array( $t_result );
+		$t_diskfile = file_path_combine( $t_row['folder'], $t_basename );
+		if( file_exists( $t_diskfile ) ) {
+			return $t_diskfile;
+		}
+	}
+
 	$t_path = config_get_global( 'absolute_path_default_upload_folder' );
 	if( !is_blank( $t_path ) ) {
 		$t_diskfile = file_path_combine( $t_path, $t_basename );
Ohne dieser Anpassung kann am nächsten Tag die Datei nicht mehr gefunden werden, da der Path dann um einen Tag "verschoben" ist, und der Eintrag in der Spalte "folder" (bug_file_table) nicht abgefragt wird.

Kennt Jemand vielleicht eine Lösung, die grundsätzlich ohne Anpassung gehen würde und die Anhänge nicht flach abgelegt werden müssen?

Vielen Dank

Jacek
atrol
Site Admin
Posts: 8366
Joined: 26 Mar 2008, 21:37
Location: Germany

Re: Anpassung des Speicherortes für Anhänge nach Datum

Post by atrol »

Auf der Verwaltungsseite eines Projektes lässt sich auch ein individueller Pfad pro Projekt einstellen.

Falls man es nachträglich ändert, sollte man mit etwas manueller Nacharbeit die Dateien auf Filesystem Ebene und die Pfade in der Datenbank entsprechend anpassen.
Falls man es nicht macht, funktioniert zwar auf den ersten Moment recht viel, es entsteht aber ein etwas chaotischer Zustand, der es erschwert bei Problemen einzugreifen.
Please use Search before posting and read the Manual
jacekw@gmx.de
Posts: 2
Joined: 21 Feb 2019, 10:09

Re: Anpassung des Speicherortes für Anhänge nach Datum

Post by jacekw@gmx.de »

Lieber "atrol",

sorry für die späte Rückmeldung (hatte die E-Mail Benachrichtigung nicht aktiv gechabt) und danke für Deine Antwort.

Das mit dem Einstellen des Pfandes im jeweiligen Projekt ist eine gute Idee, jedoch bei mittlerweile über 800 Projekten nicht praktikabel.
Da meine MantisBT Instanz mittlerweile 309104 Anhänge (select count(*) from mantis_bug_file_table) mit über 80GB verwaltet, ist es viel einfacher die Anhänge nach Datum zu sortieren (früher war es wegen des Dateisystem Performance nötig, da zu viele Dateien in einem Verzeichnis).

Ich bleibe vorerst beim "Patchen" - vielleicht hat man in der Zukunft eine bessere Lösung.

LG Jacek
Post Reply