[](
https://travis-ci.org/DQNEO/Amazon-S3-Thin)
# NAME
Amazon::S3::Thin - A thin, ligthweight, low-level Amazon S3 client
# SYNOPSIS
use Amazon::S3::Thin;
my $s3client = Amazon::S3::Thin->new(
{ aws_access_key_id => $aws_access_key_id,
aws_secret_access_key => $aws_secret_access_key,
}
);
my $key = "dir/file.txt";
my $response;
$response = $s3client->put_object($bucket, $key, "hello world");
$response = $s3client->get_object($bucket, $key);
print $response->content; # => "hello world"
$response = $s3client->delete_object($bucket, $key);
$response = $s3client->copy_object($src_bucket, $src_key,
$dst_bucket, $dst_key);
$response = $s3client->list_objects(
$bucket,
{prefix => "foo", delimter => "/"}
);
You can also pass any useragent as you like
my $s3client = Amazon::S3::Thin->new(
{ aws_access_key_id => $aws_access_key_id,
aws_secret_access_key => $aws_secret_access_key,
ua => $any_LWP_copmatible_useragent,
}
);
# DESCRIPTION
Amazon::S3::Thin - A thin, ligthweight, low-level Amazon S3 client.
- Low Level
It returns HTTP::Response. So you can inspect easily what's happening inside , and can handle error as you like.
- Low Dependency
It does require no XML::\* modules, so that installation be easy;
- Low Learning Cost
The interfaces are designed to follow S3 official REST APIs. So it is easy to learn.
# comparison to precedent modules
There are already usuful modules [Amazon::S3](
https://metacpan.org/pod/Amazon::S3) and [Net::Amazon::S3](
https://metacpan.org/pod/Net::Amazon::S3).
The 2 precedent modules provides "a Perlish interface", which is easy to understand for Perl programmers.
But they also hide low-level behaviors.
For example, the "get\_key" method returns undef on 404 status and raises exception on 5xx status.
In some situations, it is very important to see raw HTTP communications.
That's why I made this module.
# TO DO
lots of APIs are not implemented yet.
# SUPPORT
Bugs should be reported via Github
https://github.com/DQNEO/Amazon-S3-Thin/issues
# LICENSE
Copyright (C) DQNEO.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
# AUTHOR
DQNEO
## ORIGINAL AUTHOR
Timothy Appnel <
[email protected]> [Amazon::S3](
https://metacpan.org/pod/Amazon::S3)
# SEE ALSO
[Amazon::S3](
https://metacpan.org/pod/Amazon::S3), [Net::Amazon::S3](
https://metacpan.org/pod/Net::Amazon::S3)
API Reference : REST API
http://docs.aws.amazon.com/AmazonS3/latest/API/APIRest.html
API Reference : List of Error Codes
http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList