Net::Amazon::S3::Client - An easy-to-use Amazon S3 client
Contents
Constructor
s3 Net::Amazon::S3 instance
error_handler_class
Error handler class name (package name), see Net::Amazon::S3::Error::Handler for more. Overrides one
available in "s3".
Default: Net::Amazon::S3::Error::Handler::Confess
error_handler
Instance of error handler class.
Copyright And License
This software is copyright (c) 2022 by Amazon Digital Services, Leon Brocard, Brad Fitzpatrick, Pedro
Figueiredo, Rusty Conover, Branislav Zahradník.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5
programming language system itself.
perl v5.34.0 2022-07-18 Net::Amazon::S3::Client(3pm)
Description
The Net::Amazon::S3 module was written when the Amazon S3 service had just come out and it is a light
wrapper around the APIs. Some bad API decisions were also made. The Net::Amazon::S3::Client,
Net::Amazon::S3::Client::Bucket and Net::Amazon::S3::Client::Object classes are designed after years of
usage to be easy to use for common tasks.
These classes throw an exception when a fatal error occurs. It also is very careful to pass an MD5 of the
content when uploaded to S3 and check the resultant ETag.
WARNING: This is an early release of the Client classes, the APIs may change.
Methods
new
Net::Amazon::S3::Client can be constructed two ways.
Historically it wraps S3 API instance
use Net::Amazon::S3::Client;
my $client = Net::Amazon::S3::Client->new (
s3 => .... # Net::Amazon::S3 instance
);
new(sincev0.92)
Since v0.92 explicit creation of S3 API instance is no longer necessary. Net::Amazon::S3::Client's
constructor accepts same parameters as Net::Amazon::S3
use Net::Amazon::S3::Client v0.92;
my $client = Net::Amazon::S3::Client->new (
aws_access_key_id => ...,
aws_secret_access_key => ...,
...,
);
buckets
# list all my buckets
# returns a list of L<Net::Amazon::S3::Client::Bucket> objects
my @buckets = $client->buckets;
foreach my $bucket (@buckets) {
print $bucket->name . "\n";
}
create_bucket
# create a new bucket
# returns a L<Net::Amazon::S3::Client::Bucket> object
my $bucket = $client->create_bucket(
name => $bucket_name,
acl_short => 'private',
location_constraint => 'us-east-1',
);
bucket
# or use an existing bucket
# returns a L<Net::Amazon::S3::Client::Bucket> object
my $bucket = $client->bucket( name => $bucket_name );
bucket_class
# returns string "Net::Amazon::S3::Client::Bucket"
# subclasses will want to override this.
my $bucket_class = $client->bucket_class
Name
Net::Amazon::S3::Client - An easy-to-use Amazon S3 client
Synopsis
# Build Client instance
my $client = Net::Amazon::S3::Client->new (
# accepts all Net::Amazon::S3's arguments
aws_access_key_id => $aws_access_key_id,
aws_secret_access_key => $aws_secret_access_key,
retry => 1,
);
# or reuse an existing S3 connection
my $client = Net::Amazon::S3::Client->new (s3 => $s3);
# list all my buckets
# returns a list of L<Net::Amazon::S3::Client::Bucket> objects
my @buckets = $client->buckets;
foreach my $bucket (@buckets) {
print $bucket->name . "\n";
}
# create a new bucket
# returns a L<Net::Amazon::S3::Client::Bucket> object
my $bucket = $client->create_bucket(
name => $bucket_name,
acl_short => 'private',
location_constraint => 'us-east-1',
);
# or use an existing bucket
# returns a L<Net::Amazon::S3::Client::Bucket> object
my $bucket = $client->bucket( name => $bucket_name );
Version
version 0.991
