194 lines
4.0 KiB
Perl
194 lines
4.0 KiB
Perl
# --
|
|
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
|
# --
|
|
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
|
# the enclosed file COPYING for license information (GPL). If you
|
|
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
|
# --
|
|
|
|
package Kernel::System::Web::UploadCache;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
our @ObjectDependencies = (
|
|
'Kernel::Config',
|
|
);
|
|
|
|
=head1 NAME
|
|
|
|
Kernel::System::Web::UploadCache - an upload file system cache
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
All upload cache functions.
|
|
|
|
=head1 PUBLIC INTERFACE
|
|
|
|
=head2 new()
|
|
|
|
Don't use the constructor directly, use the ObjectManager instead:
|
|
|
|
my $WebUploadCacheObject = $Kernel::OM->Get('Kernel::System::Web::UploadCache');
|
|
|
|
=cut
|
|
|
|
sub new {
|
|
my ( $Type, %Param ) = @_;
|
|
|
|
# allocate new hash for object
|
|
my $Self = {};
|
|
bless( $Self, $Type );
|
|
|
|
my $GenericModule = $Kernel::OM->Get('Kernel::Config')->Get('WebUploadCacheModule')
|
|
|| 'Kernel::System::Web::UploadCache::DB';
|
|
|
|
# load generator auth module
|
|
$Self->{Backend} = $Kernel::OM->Get($GenericModule);
|
|
|
|
return $Self if $Self->{Backend};
|
|
return;
|
|
}
|
|
|
|
=head2 FormIDCreate()
|
|
|
|
create a new Form ID
|
|
|
|
my $FormID = $UploadCacheObject->FormIDCreate();
|
|
|
|
=cut
|
|
|
|
sub FormIDCreate {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->{Backend}->FormIDCreate(%Param);
|
|
}
|
|
|
|
=head2 FormIDRemove()
|
|
|
|
remove all data for a provided Form ID
|
|
|
|
$UploadCacheObject->FormIDRemove( FormID => 123456 );
|
|
|
|
=cut
|
|
|
|
sub FormIDRemove {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->{Backend}->FormIDRemove(%Param);
|
|
}
|
|
|
|
=head2 FormIDAddFile()
|
|
|
|
add a file to a Form ID
|
|
|
|
$UploadCacheObject->FormIDAddFile(
|
|
FormID => 12345,
|
|
Filename => 'somefile.html',
|
|
Content => $FileInString,
|
|
ContentType => 'text/html',
|
|
Disposition => 'inline', # optional
|
|
);
|
|
|
|
ContentID is optional (automatically generated if not given on disposition = inline)
|
|
|
|
$UploadCacheObject->FormIDAddFile(
|
|
FormID => 12345,
|
|
Filename => 'somefile.html',
|
|
Content => $FileInString,
|
|
ContentID => 'some_id@example.com',
|
|
ContentType => 'text/html',
|
|
Disposition => 'inline', # optional
|
|
);
|
|
|
|
=cut
|
|
|
|
sub FormIDAddFile {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->{Backend}->FormIDAddFile(%Param);
|
|
}
|
|
|
|
=head2 FormIDRemoveFile()
|
|
|
|
removes a file from a form id
|
|
|
|
$UploadCacheObject->FormIDRemoveFile(
|
|
FormID => 12345,
|
|
FileID => 1,
|
|
);
|
|
|
|
=cut
|
|
|
|
sub FormIDRemoveFile {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->{Backend}->FormIDRemoveFile(%Param);
|
|
}
|
|
|
|
=head2 FormIDGetAllFilesData()
|
|
|
|
returns an array with a hash ref of all files for a Form ID
|
|
|
|
my @Data = $UploadCacheObject->FormIDGetAllFilesData(
|
|
FormID => 12345,
|
|
);
|
|
|
|
Return data of on hash is Content, ContentType, ContentID, Filename, Filesize, FileID;
|
|
|
|
=cut
|
|
|
|
sub FormIDGetAllFilesData {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return @{ $Self->{Backend}->FormIDGetAllFilesData(%Param) };
|
|
}
|
|
|
|
=head2 FormIDGetAllFilesMeta()
|
|
|
|
returns an array with a hash ref of all files for a Form ID
|
|
|
|
Note: returns no content, only meta data.
|
|
|
|
my @Data = $UploadCacheObject->FormIDGetAllFilesMeta(
|
|
FormID => 12345,
|
|
);
|
|
|
|
Return data of hash is ContentType, ContentID, Filename, Filesize, FileID;
|
|
|
|
=cut
|
|
|
|
sub FormIDGetAllFilesMeta {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return @{ $Self->{Backend}->FormIDGetAllFilesMeta(%Param) };
|
|
}
|
|
|
|
=head2 FormIDCleanUp()
|
|
|
|
Removed no longer needed temporary files.
|
|
|
|
Each file older than 1 day will be removed.
|
|
|
|
$UploadCacheObject->FormIDCleanUp();
|
|
|
|
=cut
|
|
|
|
sub FormIDCleanUp {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->{Backend}->FormIDCleanUp(%Param);
|
|
}
|
|
|
|
1;
|
|
|
|
=head1 TERMS AND CONDITIONS
|
|
|
|
This software is part of the OTRS project (L<https://otrs.org/>).
|
|
|
|
This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
|
the enclosed file COPYING for license information (GPL). If you
|
|
did not receive this file, see L<https://www.gnu.org/licenses/gpl-3.0.txt>.
|
|
|
|
=cut
|