tualo/sftp-vfs

tualo - sftp virtual file system

Maintainers

Package info

github.com/tualo/sftp-vfs

pkg:composer/tualo/sftp-vfs

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.2 2026-08-03 08:02 UTC

This package is auto-updated.

Last update: 2026-08-03 08:04:18 UTC


README

Ein Composer-Paket für den Einsatz eines SFTP-basierten virtuellen Dateisystems innerhalb von Tualo Office.

Überblick

Das Paket registriert einen eigenen Stream-Wrapper für ein beliebiges SFTP-Schema und macht SFTP-Server über PHP-Streams wie lokale Dateien erreichbar. Dazu wird phpseclib/phpseclib verwendet.

Installation

composer require tualo/sftp-vfs

Middleware-Automatik

Das Paket wird beim Anwendungsstart automatisch über die Middleware geladen. Dazu werden Einträge aus der Tabelle sftp_vfs_config verarbeitet.

Die Tabelle sollte mindestens folgende Spalten enthalten:

create table if not exists `sftp_vfs_config` (
    `schema_id` varchar(36) not null,
    `name` varchar(255) not null,
    `host` varchar(255) not null,
    `port` int(11) not null default '22',
    `username` varchar(255) not null,
    `password` varchar(255) default null,
    `private_key` text default null,
    `passphrase` varchar(255) default null,
    primary key (`schema_id`)
);

Konfiguration

Beispiel für einen Eintrag:

$cfg = [
    'schema_id' => 'my-sftp',
    'scheme' => 'sftp',
    'host' => 'sftp.example.com',
    'port' => 22,
    'username' => 'demo',
    'password' => 'secret',
];

\Tualo\Office\SftpVFS\VFS::registerVFS(new \Tualo\Office\SftpVFS\VFSConfig($cfg));

Alternativ kann auch ein privater SSH-Key verwendet werden:

$cfg = [
    'schema_id' => 'my-sftp',
    'scheme' => 'sftp',
    'host' => 'sftp.example.com',
    'port' => 22,
    'username' => 'demo',
    'private_key' => "-----BEGIN OPENSSH PRIVATE KEY-----\n...",
    'passphrase' => 'optional-passphrase',
];

Verschlüsselte Werte in der Datenbank

Die Werte für password, private_key und passphrase können verschlüsselt gespeichert werden. Dazu muss in der Tualo-Konfiguration ein Pfad zu einer Schlüsseld Datei gesetzt werden:

TualoApplication::configuration('sftp', 'encryption_file', '/pfad/zur/oeffentlichen/pgp-key-datei');

Wenn diese Konfiguration gesetzt ist, dekodiert und entschlüsselt das Paket die Werte automatisch beim Lesen über die Getter-Methoden. Dadurch bleiben sensible Daten nicht im Klartext in der Datenbank liegen.

Nutzung

Nach der Registrierung kann auf Dateien über das konfigurierte Schema zugegriffen werden:

$file = 'sftp://path/to/file.txt';
$content = file_get_contents($file);

Oder mit einem eigenen Schema:

$file = 'sftp://path/to/file.txt';

Hinweise

  • Das Paket verwendet phpseclib/phpseclib für die SFTP-Integration.
  • Der Stream-Wrapper wird über stream_wrapper_register() registriert.
  • Die Middleware lädt die Konfiguration automatisch beim Start der Anwendung.