App-Glacier
view release on metacpan or search on metacpan
lib/App/Glacier/Job/FileRetrieval.pm view on Meta::CPAN
package App::Glacier::Job::FileRetrieval;
use strict;
use warnings;
require App::Glacier::Job::ArchiveRetrieval;
use parent qw(App::Glacier::Job::ArchiveRetrieval);
use App::Glacier::Core;
use Carp;
# new(CMD, VAULT, FILE[, VERSION])
sub new {
croak "bad number of arguments" if $#_ < 3 || $#_ > 4;
my ($class, $cmd, $vault, $file, $version) = @_;
my $dir = $cmd->directory($vault);
unless ($dir) {
$cmd->abend(EX_TEMPFAIL,
"nothing is known about vault $vault; please get directory listing first");
}
my $archive;
($archive, $version) = $dir->locate($file, $version);
unless ($archive) {
$version = 1 unless defined $version;
$cmd->abend(EX_NOINPUT,
"$vault:$file;$version not found; make sure directory listing is up-to-date");
}
my $self = $class->SUPER::new($cmd, $vault, $archive->{ArchiveId},
description => "Retrieval of $file;$version",
ttl => $cmd->cfget(qw(database job ttl)));
$self->{_filename} = $file;
$self->{_fileversion} = $version;
return $self;
}
sub file_name {
my ($self, $full) = @_;
if ($full) {
return $self->{_filename} . ';' . $self->{_fileversion};
} else {
return $self->{_filename};
}
}
sub file_version {
my ($self) = @_;
return $self->{_fileversion};
}
1;
( run in 0.577 second using v1.01-cache-2.11-cpan-5b529ec07f3 )