Dateisystem

Dateisystem-Einträge stellen Laufzeitmodulen verzeichnisbasierten oder schreibgeschützten eingebetteten Speicher bereit. Diese Seite ist eine Konfigurationsreferenz; ihre YAML-Blöcke sind einzelne Entry-Fragmente und keine vollständigen Projekte.

Entry-Typen

Art Beschreibung
fs.directory Verzeichnisbasiertes Dateisystem
fs.embed Schreibgeschütztes eingebettetes Dateisystem

Verzeichnis-Dateisystem

- name: uploads
  kind: fs.directory
  directory: "/var/data/uploads"
  auto_init: true
  mode: "0755"
Feld Typ Standard Beschreibung
directory string erforderlich Wurzelpfad
auto_init bool false Verzeichnis erstellen wenn nicht vorhanden
mode string 0755 Unix-Berechtigungsmodus (oktal)
base string - Basis für relative Pfade: project (Arbeitsverzeichnis des Prozesses) oder module (Lade-Wurzel des besitzenden Moduls)

Absolute Pfade werden unverändert verwendet, unabhängig von base.

Bei einem relativen Pfad hält base: project ihn relativ zum Arbeitsverzeichnis des Prozesses. Sowohl base: module als auch ein nicht gesetztes base lösen ihn gegen die Lade-Wurzel des Moduls auf, dem der Eintrag gehört, ermittelt über den Registry-Owner des Eintrags. Hat der Eintrag kein besitzendes Modul oder dieses Modul keine auflösbare Ressourcen-Wurzel, bleibt der Pfad relativ zum Arbeitsverzeichnis des Prozesses.

Jeder andere Wert wird mit invalid directory base abgelehnt.

Der Modus beschränkt alle Dateioperationen. Ausführungsbits werden automatisch hinzugefügt, wenn alle Lesebits gesetzt sind und kein Ausführungsbit gesetzt ist.

Pfade werden normalisiert und validiert. Es ist nicht möglich, auf Dateien außerhalb des konfigurierten Wurzelverzeichnisses zuzugreifen.

Eingebettetes Dateisystem

- name: static
  kind: fs.embed

Eingebettete Dateisysteme laden aus Pack-Ressourcen unter Verwendung der Entry-ID. Sie sind schreibgeschützt.

Eingebettete Dateisysteme sind ein interner Mechanismus. Manuelle Konfiguration ist typischerweise nicht erforderlich.

Operationen

Beide Dateisystemtypen implementieren:

Operation Directory Embed
Open/Read Ja Ja
Stat Ja Ja
Lstat Ja Ja
ReadDir Ja Ja
OpenFile (write) Ja Nein
Remove Ja Nein
Mkdir Ja Nein
Rename Ja Nein

Schreiboperationen auf eingebetteten Dateisystemen geben einen Fehler zurück.

Lua-API

Siehe Dateisystem-Modul für Dateioperationen.

Siehe auch