App-Glacier
view release on metacpan or search on metacpan
lib/App/Glacier/Command/Get.pm view on Meta::CPAN
$self->_download_simple($job, $localname);
} else {
$self->_download_multipart($job, $localname);
}
}
sub _open_output {
my ($self, $localname) = @_;
open(my $fd, '>', $localname)
or $self->abort(EX_FAILURE, "can't open $localname: $!");
binmode($fd);
truncate($fd, 0);
return $fd;
}
sub _download_simple {
my ($self, $job, $localname) = @_;
$self->debug(1, "$job: downloading in single part");
return if $self->dry_run;
my $fd = $self->_open_output($localname);
lib/App/Glacier/Command/Put.pm view on Meta::CPAN
# Number of parts to upload by each job;
my $job_parts = int(($total_parts + $njobs - 1) / $njobs);
$self->debug(1,
"uploading $localname in chunks of $part_size bytes, in $njobs jobs");
return if $self->dry_run;
open(my $fd, '<', $localname)
or $self->abort(EX_FAILURE, "can't open $localname: $!");
binmode($fd);
my $upload_id = $glacier->multipart_upload_init($vaultname, $part_size,
$remotename);
$self->debug(1, "Upload ID: $upload_id");
use Fcntl qw(SEEK_SET);
my @part_hashes :shared = ();
my $p = new App::Glacier::Progress($total_parts,
prefix => $localname)
unless $self->{_options}{quiet};
( run in 0.571 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )