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: Feb 21, 2019 5:09 am

Anpassung des Speicherortes für Anhänge nach Datum

Post by jacekw@gmx.de » Feb 21, 2019 5:41 am

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: 7658
Joined: Mar 26, 2008 4:37 pm
Location: Germany

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

Post by atrol » Feb 22, 2019 2:20 am

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: Feb 21, 2019 5:09 am

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

Post by jacekw@gmx.de » May 31, 2019 1:52 am

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