Amazon-S3-FastUploader
view release on metacpan or search on metacpan
improve error handling
0.05 empyt update (just test)
0.06 2012-10-21
can set acl_short
set mime types automatically
0.07 2012-12-01
can use ssl option for the cmd tool
0.08 2012-12-01
refer Github Repository
s3uploader.pl view on Meta::CPAN
use strict;
use warnings;
use Getopt::Long;
use Pod::Usage;
use FindBin;
use File::Spec;
use Amazon::S3::FastUploader;
my %opts = (
process => 1,
ssl => 0,
encrypt => 0,
);
GetOptions(
\%opts,
'verbose',
'process=i',
'ssl',
'encrypt',
'help'
) or $opts{help}++;
pod2usage(2) if $opts{help};
my $local_dir = shift;
my $remote_dir = shift;
my ($bucket_name, $target_dir) = ( $remote_dir =~ m|s3://([^/]+)/(.+)$| );
die "no such directory $local_dir" if ! -d $local_dir;
my $config = {
aws_access_key_id => $ENV{AWS_ACCESS_KEY_ID},
aws_secret_access_key => $ENV{AWS_SECRET_ACCESS_KEY},
secure => $opts{ssl},
encrypt => $opts{encrypt},
retry => 5,
process => $opts{process},
verbose => $opts{verbose},
};
my $uploader = Amazon::S3::FastUploader->new($config);
$uploader->upload($local_dir, $bucket_name, $target_dir);
__END__
=head1 Name
S3 Uploader - a script to upload recursively a directory to Amazon S3
=head1 SYNOPSIS
-v verbose
-p max process (default 1 if ommitted)
-s use ssl
-h help (this)
example:
upload.pl -v -p 10 /path/to/dir s3://bucketname/foo/bar/dir/
=cut
( run in 2.216 seconds using v1.01-cache-2.11-cpan-acf6aa7dc9e )