Metainformationen zur Seite
LoxBerry::Storage::get_storage
@storages = LoxBerry::Storage::get_storage(BOOL readwriteonly, [STRING localdatadir]);
Die Funktion get_storage sammelt alle vorhandenen Storage-Punkte (USB, Netzwerk, Lokal) und liefert einen Array zurück, der auch direkt in HTML::Template verwendet werden kann.
LoxBerry Compatibility
Diese Funktion steht erst ab LoxBerry 1.2.1 zur Verfügung. Bitte dies entsprechend als Minimum-Version in der plugin.cfg setzen.
Innerhalb eines Plugins wäre es denkbar, einige (große) Datenmengen oder häufige Schreibzugriffe auf einen externen Datenträger auszulagern oder von dort aus Daten, z. B. MP3-Dateien, einzulesen.
Der zurückgegebene Array kann direkt in HTML::Template benutzt werden.
Parameter
Parameter | Funktion |
(optional) readwriteonly | Ist der erste Parameter = 1, werden nur Devices ausgegeben, auf die sowohl Lese- als auch Schreibberechtigung besteht. Andernfalls werden alle Devices, also auch diejenigen, die nur read-only sind, ausgegeben. |
(optional) localdatadir | Standardmäßig (ohne Angabe) wird als lokales Datenverzeichnis das $lbpdatadir zurückgeliefert. Bei Angabe dieses Parameters wird das angegebene Verzeichnis als lokales Datenverzeichnis zurückgeliefert. |
Variablen
Hash-Variable pro Array-Zeile | Inhalt |
PATH | Der vollständige Pfad zu diesem Storage-Punkt. PATH ist immer unique und kann als Schlüssel (Key) verwendet werden. |
NAME | Liefert einen einheitlichen, berechneten Namen zurück, der für die Darstellung in der Benutzeroberfläche gedacht ist. Die Darstellung ist je nach Gruppe unterschiedlich. Der Name enthält auch die Größe des Datenträgers in GB. |
GROUP | * net → Netzwerk-Shares * usb → USB-Devices * local → Lokaler Speicher auf dem LoxBerry (aktuell nur $plugindatadir) |
TYPE | Der Typ des Storages - bei usb das Dateisystem, bei net der Protokolltyp (z.B. smb), bei local → local |
WRITABLE | Zeigt an, ob der Pfad beschreibbar ist * 0/undef → Read-Only * 1 → Writable Für TYPE = 'local' wird nicht explizit geprüft, sondern immer 1 zurückgeliefert |
USED | Liefert den am Datenträger verwendeten Speicher in KB |
AVAILABLE | Liefert den am Datenträger verfügbaren Speicher in KB |
SIZE | Liefert die Größe des Datenträgers in KB |
SIZE_GB | Liefert die Größe des Datenträgers in GB |
Nur GROUP=USB: | |
USBSTORAGE_DEVICE | Vom System identifizierter Name des USB-Datenträgers |
USBSTORAGE_BLOCKDEVICE | Normalerweise der Mountpoint des Blockdevices, z.B. /dev/sda |
Nur GROUP=NET: | |
NETSHARE_SERVER | Servername |
NETSHARE_SHARENAME | Name des Fileshares |
Verwendung
use LoxBerry::Storage; use LoxBerry::Web; my @storage = LoxBerry::Storage::get_storage(); print STDERR "USB Devices:\n"; foreach my $storagepoint (@storage) { print STDERR "$storagepoint->{NAME} $storagepoint->{PATH} $storagepoint->{WRITABLE}\n"; } $htmltemplate->param('STORAGE' => \@storage); # Access a single element print STDERR "Single element: " . $storage[0]->{NAME} . "\n";
Verwendung mit HTML::Template
<TMPL_LOOP STORAGE> <div style="display: flex"> <div style="min-width: 50px"><TMPL_VAR PATH></div> <div style="min-width: 200px"><TMPL_VAR TYPE></div> <div style="min-width: 200px"><TMPL_VAR SIZE_GB> GB</div> </div> </TMPL_LOOP>