NAME

Quiq::Smb::Client - SMB Client

BASE CLASS

Quiq::Hash

DESCRIPTION

Ein Objekt der Klasse repräsentiert einen SMB-Client. Die Klasse realisiert ihre Funktionalität unter Rückgriff auf Filesys::SmbClient, allerdings nicht durch Ableitung, sondern durch Einbettung. Die Klasse zeichnet sich dadurch aus, dass sie

  • höhere Dateioperationen wie ls(), get() und put() realisiert (ähnlich FTP)

  • Fehler nicht über Returnwerte anzeigt, sondern im Fehlerfall eine Exception wirft

METHODS

Konstruktor

new() - Instantiiere Objekt

Synopsis

$smb = $class->new(%args);

Arguments

%args

Liste von Schlüssel/Wert-Paaren, siehe Filesys::SmbClient.

Returns

Object

Description

Instantiiere eine Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück.

Die Eigenschaft configuration gehört nicht zu Filesys::SmbClient, sondern ist speziell hinzugefügt. Wenn gesetzt, wird die Datei ~/.smb/smb.conf mit dem angegebenen Text (SMB-Konfiguration) vor der Instantiierung geschrieben. Andernfalls wird eine leere Datei angelegt. Die Konfiguration scheint nicht (einmalig) während Konstruktoraufrufs gelesen zu werden, sondern bei späteren (der ersten?) Operation. Daher ist Vorsicht bei mehreren Objekten geboten (TODO: dies genauer untersuchen).

Example

my $smb = Quiq::Smb->new(
    username => 'elbrusfse',
    password => 'geheim',
    workgroup => 'ZEPPELIN_HV',
    debug => 0, # 0 .. 10
    configuration => '
        [global]
        client min protocol = CORE
        client use spnego = no
        client ntlmv2 auth = no
    ',
);

Objektmethoden

delete() - Lösche Datei von Server

Synopsis

$smb->delete($file);

Arguments

$file

(String) Pfad der Datei.

Description

Lösche Datei $file von Server.

getData() - Hole Daten von Server

Synopsis

$data = $smb->getData($file);

Arguments

$file

(String) Dateiname.

Returns

(String) Dateininhalt.

Description

Liefere den Inhalt der Datei $file.

Example

$data = $smb->get('smb://ZBM-MOM-T/XRECHNUNG$/S-001191090X_Original.pdf');

ls() - Liste von Dateien in Server-Verzeichnis

Synopsis

@arr|$arr = $sbm->ls($dir);

Arguments

$dir

Verzeichnis

Returns

(Array of Strings) Liste von Dateinamen. Im Skalarkontext eine Referenz auf die Liste.

Description

Liefere die Liste der Dateien auf dem Server in Verzeichnis $dir.

Example

@names = $smb->ls('smb://ZBM-MOM-T/XRECHNUNG$');

put() - Übertrage Datei auf Server

Synopsis

$smb->put($from,$to);

Arguments

$from

(String) Pfad der Quelldatei.

$to

(String) Pfad der Zieldatei

Description

Kopiere Datei $from nach $to.

Example

$smb->put('test.xls','smb://zeppelin.corp/zbm/Transfer/elbrusfse/test.xls');

putData() - Übertrage Daten auf Server

Synopsis

$smb->putData($data,$file);

Arguments

$data

(String) Dateiinhalt.

$file

(String) Dateiname.

Description

Schreibe Datei $file mit Inhalt $data.

Example

$smb->putData($data,'smb://ZBM-MOM-T/XRECHNUNG$/S-001191090X_Original.pdf');

rename() - Benenne Datei auf Server um

Synopsis

$smb->rename($oldname,$newname);

Arguments

$oldname

(String) Alter Dateiname.

$newname

(String) Neuer Dateiname.

Description

Benenne Datei $oldname in $newname um.

VERSION

1.233

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2025 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.