Zum Hauptinhalt springen

Externer Dateispeicher

Im Standard speichert linqi Dateiinhalte innerhalb der Datenbank. Hierdurch haben Sie keine zusätzlichen Aufwände was Backups und ähnliches angeht.
Es kann jedoch vorkommen das Sie die Datei Inhalte ausserhalb der linqi Datenbank speichern wollen, um so z.B. die Größe der Datenbank zu verringern.

Hierfür bietet linqi verschiedene Möglichkeiten an, um externe Speicherorte anzubinden. Sie können externe Speicherorte über die appsettings.json anbinden.

Dateisystem

Über diese Konfiguration speichert linqi die Datei Inhalte in das Dateisystem. Hier können Sie z.B. ein Netzlaufwerk in den verschiedenen Servern anbinden.
Dabei ist wichtig das im Falle von Load Balancing alle Server auf den selben Speicherort zugreifen.
Um Datei Inhalte im Dateisystem zu speichern, müssen Sie folgende Schritte durchführen:

  • Öffnen Sie die Datei appsettings.json (Standardpfad unter Windows C:\inetpub\wwwroot\linqi\appsettings.json) innerhalb des linqi Installationsordner mit einem Texteditor.
  • Fügen Sie im Bereich Misc den folgenden Wert ein / ändern Sie diesen Wert:
    • FileStoragePath:
      Geben Sie hier den Pfad an unter dem die Dateien abgespeichert werden. Dies kann z.B. ein UNC Pfad sein.

Dies kann beispielsweise wie folgt aussehen:

{
"Misc": {
"FileStoragePath": "\\share\linqistorage"
}
}

S3 Speicher

Mit dieser Konfiguration speichert linqi die Datei Inhalte in einem S3 kompatiblen Speicher ab.
Um Datei Inhalte in einem S3 Speicher zu speichern, müssen Sie folgende Schritte durchführen:

  • Öffnen Sie die Datei appsettings.json (Standardpfad unter Windows C:\inetpub\wwwroot\linqi\appsettings.json) innerhalb des linqi Installationsordner mit einem Texteditor.
  • Fügen Sie im Bereich Misc einen neuen Block FileStorageS3 mit folgenden Werten ein:
    • ServiceUrl:
      Hier geben Sie die Url zum S3 Service an.
    • Region:
      Hier können Sie die Region des S3 Service definieren.
    • AccessKeyId:
      Hier müssen Sie die ID des Access Keys angeben.
    • AccessKeySecret:
      Hier müssen Sie das verschlüsselte Secret des Access Keys angeben.
    • BucketName:
      Dieser Wert bestimmt den Namen des Buckets in dem die Dateien gespeichert werden.
    • TargetFolder:
      Falls Sie die Dateien in einem Unterordner speichern wollen, können Sie hier den Namen des Ordners anzugeben.
    • EncryptionKey:
      Sie können hier einen verschlüsselten 64 Zeichen langen Wert angeben. Ist dieser Wert angegeben werden die Inhalte verschlüsselt abgelegt.
      Dabei ist es wichtig das jeder Server den selben Wert hat um die Dateien wieder zu entschlüsseln können.
    • UseGzip:
      Wenn Sie diesen Wert auf true setzen werden die Dateien GZIP komprimiert.

Dies kann beispielsweise wie folgt aussehen:

{
"Misc": {
"FileStorageS3": {
"ServiceUrl": "https://s3.linqi.local",
"Region": "linqi",
"AccessKeyId": "ABC",
"AccessKeySecret": "UjrxXzD",
"BucketName": "linqi",
"TargetFolder": "linqi",
"EncryptionKey": "UjrxXzD",
"UseGzip": true
}
}
}

Migration aus Datenbank in externe Speicher

Sie können immer mit der Datenbank als Datei Speicherort starten. Wenn Sie zu einem späteren Zeitpunkt dann einen externen Speicherort definieren, verschiebt linqi automatisch die Dateiinhalte in diesen Speicherort.
Um die Serverlast gering zu halten wird dies erst nachts durchgeführt und nicht sofort.