VirtualFS#

NAME#

Kernel::System::VirtualFS - virtual filesystem lib

DESCRIPTION#

All virtual filesystem functions.

PUBLIC INTERFACE#

new()#

Don’t use the constructor directly, use the ObjectManager instead:

my $VirtualFSObject = $Kernel::OM->Get('Kernel::System::VirtualFS');

Read()#

read a file from virtual file system

my %File = $VirtualFSObject->Read(
    Filename => '/Object/some/name.txt',
    Mode     => 'utf8',

    # optional
    DisableWarnings => 1,
);

returns

my %File = (
    Content  => $ContentSCALAR,

    # preferences data
    Preferences => {

        # generated automatically
        FilesizeRaw        => 12345,

        # optional
        ContentType        => 'text/plain',
        ContentID          => '<some_id@example.com>',
        ContentAlternative => 1,
        SomeCustomParams   => 'with our own value',
    },
);

Write()#

write a file to virtual file system

my $Success = $VirtualFSObject->Write(
    Content  => \$Content,
    Filename => '/Object/SomeFileName.txt',
    Mode     => 'binary',            # (binary|utf8)

    # optional, preferences data
    Preferences => {
        ContentType        => 'text/plain',
        ContentID          => '<some_id@example.com>',
        ContentAlternative => 1,
        SomeCustomParams   => 'with our own value',
    },
);

Delete()#

delete a file from virtual file system

my $Success = $VirtualFSObject->Delete(
    Filename => '/Object/SomeFileName.txt',

    # optional
    DisableWarnings => 1,
);

Find()#

find files in virtual file system

only for file name

my @List = $VirtualFSObject->Find(
    Filename => '/Object/some_what/*.txt',
);

only for preferences

my @List = $VirtualFSObject->Find(
    Preferences => {
        ContentType => 'text/plain',
    },
);

for file name and for preferences

my @List = $VirtualFSObject->Find(
    Filename    => '/Object/some_what/*.txt',
    Preferences => {
        ContentType => 'text/plain',
    },
);

Returns:

my @List = (
  '/Object/some/file.txt',
  '/Object/my.pdf',
);