AC-MrGamoo
view release on metacpan or search on metacpan
lib/AC/MrGamoo/API/Get.pm view on Meta::CPAN
my $proto = shift;
my $req = shift;
my $content = shift;
my $file = filename($req->{filename});
my $fd = $io->{fd};
fcntl($fd, F_SETFL, 0); # unset nbio
return nbfd_reply(404, "not found", $fd, $proto, $req) unless -f $file;
open(F, $file) || return nbfd_reply(500, 'error', $fd, $proto, $req);
my $size = (stat($file))[7];
my $sha1 = sha1_file($file);
debug("get file '$file' size $size");
# send header
my $gb = ACPScriblReply->encode( { status_code => 200, status_message => 'OK', hash_sha1 => $sha1 } );
my $hdr = AC::MrGamoo::Protocol->encode_header(
type => $proto->{type},
msgidno => $proto->{msgidno},
is_reply => 1,
lib/AC/MrGamoo/API/Put.pm view on Meta::CPAN
verbose("put file '$file' size $size");
if( $content ){
syswrite( F, $content );
$size -= length($content);
}
eval {
my $chk = AC::MrGamoo::Protocol->sendfile(\*F, $fd, $size, 10);
close F;
die "file size mismatch\n" unless (stat($tmp))[7] == $proto->{content_length};
die "SHA1 check failed\n" if $sha1 && $sha1 ne $chk;
};
if(my $e = $@){
unlink $tmp;
verbose("error: $e");
nbfd_reply(500, 'error', $fd, $proto, $req);
return;
}
rename $tmp, $file;
lib/AC/MrGamoo/Job/Done.pm view on Meta::CPAN
for my $d (@d){
next if $d eq '.' || $d eq '..';
my $p = "$base/$d";
if( -f $p ){
# there should not be files here. remove.
unlink $p;
next;
}
my $mtime = (stat($p))[9];
next unless $^T - $mtime > 24 * 3600;
debug("removing old dir: $d");
rmtree( $p, undef, undef );
}
}
AC::DC::Sched->new(
info => 'clean up old dirs',
func => \&_cleanup_old_tmp_dirs,
lib/AC/MrGamoo/Task.pm view on Meta::CPAN
$me->{R}{config}{taskid} = $me->{request}{taskid};
$me->{mr} = $mr;
};
if(my $e = $@){
problem("cannot compile task: $e");
return;
}
# measure
for my $file (@{$me->{request}{infile}}){
my $s = (stat(conf_value('basedir') . '/' . $file))[7];
$me->{_inputsize} += $s
}
debug("input size: $me->{_inputsize}");
# print STDERR "Task: ", dumper($me), "\n";
$REGISTRY{$task} = $me;
return $me;
}
( run in 0.938 second using v1.01-cache-2.11-cpan-49f99fa48dc )