The Perl Advent Calendar needs more articles for 2022. Submit your idea today!
Revision history for Perl module Net::Amazon::S3:

v0.991     2022-07-17
	- Fix Signature V4 when uri contains tilde (issue #119, thanks marcusclip)
	- API->bucket now accepts optional region (issue #117)
	- Disable Signature V4 uri simplification for S3 service (issue #96)
	- Build user agent lazily

0.99 2021-12-05
	- Client API doesn't check corrupted download anymore (using ETag == MD5)
	- fix broken Client::Object->head method (#112) (thanks Mortivor and  fkoyer)
	- Support ranged download (#113) (thanks fkoyer)

0.98 2021-03-22
	- document how to use buckets with dots, Signature V4, and HTTPS together
	- fix Net::Amazon::S3::Client::Object::exists (#94)
	- improve compatibility with DigitalOcean Spaces (#95)

0.97 2020-10-09
	- presigned object access uri supports also PUT/DELETE methods (#89)

0.96 2020-10-07
	- Signature V4 didn't work properly for services on non-standard port (issue #88)

0.95 2020-10-06
	- bugfix release, with new test coverage
	- small cleanups

0.94 2020-09-27
	- fix undefined method call in still untested methods (thanks Russell Jenkins)

0.93 2020-09-27
	- fix syntax failures on perl < v5.22 (thanks cpantesters)

0.92 2020-09-26
	- misc cleanups, more tests
	- Net::Amazon::S3::Client now can be constructed with same arguments as Net::Amazon::S3
	- Support explicit ACL in bucket/object/upload creation
	- Support set_acl on Client::Bucket / Client::Object (issue #83)
	- Add support for bucket/object tagging (issue #44)

0.91 2020-08-19 23:25 +0
	- fix regressions introduced by 0.90
	  - undeclared dependency
	  - broken usage of hashref argument in N:A:S3 construction

0.90 2020-08-18 16:00 +0
    - Support intelligent_tiering, glacier, and deep_archive storage classes
	  (thanks Sherwin Daganato)
	- Object availability predicate (thanks Emanuele Tomasi)
	- fix default region handling (#77, #78, #80)
    - new authentication context architecture
	  See Net::Amazon::S3::Authorization::IAM for future incompatiblity warning

0.89 Tue 11 Feb 2020 20:26:26
    - fix signature v4 test (Ali Zia)

0.88 Sat  1 Feb 2020 21:29:52
    - Allow passing headers from client to InitiateMultipartUpload request (Ali Zia)
    - sign uri with iam role (kuriyama)
    - Canned ACLs updated (ratsbane)

0.87 Mon  9 Dec 2019 19:53:42 GMT
    - Time::Piece fix from Eden Crane
    - eu-north-1 region (happy-barney)
    - drop hardcoded V2 in ListAllMyBuckets (happy-barney)
    - Fix setting of S3 XML document namespace (michal-josef-spacek)

0.86 Fri 12 Apr 2019 13:38:10 BST
    - Retry bucket HEAD few times see #51 (thanks Branislav Zahradník)
    - Support server side encryption also in Net::Amazon::S3::Bucket (thanks Branislav Zahradník)
    - Use session token if specified in Signature V4 as well #43 (thanks Branislav Zahradník)
    - Add website_redirect_location (thanks Gavin Carr)
    - Make keep_alive cache size configurable (thanks Michael Schout)
    - Pod::Weaver fixes (thanks Florian Schlichting)

0.85 Tue 28 Aug 2018 20:14:38 BST
     - Support standard_ia and onezone_ia storage classes (thanks Michele Beltrame)
     - run 'use_ok' on all modules (thanks Yanick Champoux)
     - spellings (thanks Gregor Herrmann)
     - LOTS of cleanup and refactoring (thanks Branislav Zahradník)

0.84 Mon 16 Jul 2018 17:49:10 BST
     - Put back credential cache code lost in Signature 4 patch (Branislav Zahradník)

0.83 Tue 10 Jul 2018 22:30:23 BST
     - All patches by Branislav Zahradník
     - Use Signature 4 by default only for amazonaws host (issue #29)
     - Relaxing constraint on owner id, accepting any string (issue #18)
     - Enable secure by default (issue #23)
     - Sanity object uris to avoid invalid signature (issue #28)

0.82 Sat  7 Jul 2018 14:28:06 BST
     - Use HEAD request to determine bucket region (patch by Branislav Zahradník)

0.81 Thu 28 Jun 2018 20:27:44 GMT (TRIAL RELEASE)
     - Restore CHANGES files format
     - Change path to new github repo
     - Add optional delimiter parameter to
       Net::Amazon::S3::Client::Bucket->list (patch by Christian
       Lackas)
     - Add expected and received ETag value if upload is detected as
       being incorrect.
     - Add support for all location constraints when creating buckets
     - making DateTime coercion optional for last_modified (something that
       might happen million of times without ever been used, in a rather
       expensive operation) (patch by Christian Lackas)
     - avoiding MD5 calculation of large files (chunked uploads) that
       are then never used (patch by Christian Lackas)
     - add ability to set use_virtual_host to use virtual host method
       of making requests which eliminate having to set the region
       endpoint of a bucket. (patch by Christian Lackas)
     - Add V4 support (patch by Branislav Zahradník)

0.80 Sun Apr 12 12:33:19 GMT 2015
     - Fixed a bug in ETag validation (patch by Ali Anari)
     - Add support to set x-amz-metadata-directive when calling
       Net::Amazon::S3::copy_key
     - Add get_callback to Net::Amazon::S3::Client:Object
     - Add support for using IAM credentials when running on EC2,
       rather than hard coding access key and secret key.
     - Add support for aws_session_token in addition to access and secret key.
     - Remove code that determined if bucket can be used as a DNS Hostname as it was flawed.
     - Fix a bug where if a bucket contained a key 0 it would not be possible to be retrieved.
     - Add support for
       Net::Amazon::S3::Client::Bucket::delete_multi_object to handle
       more than 1,000 requests in one call.
     - Various test fixes from pnu.
     - Fix Moose enum problems (patch by tomhukins)
     - Allow content 'value' property to be ScalarRef for
       Net::Amazon::S3::HTTPRequest (patch by Struan Bartlett)
     - Add support for storage class when creating buckets along with
       user metadata (patch by Aaron Crane)
     - Add support for cache control header on
       Net::Amazon::S3::Client::Object (patch by toritori0318)
     - Support server side encryption (patch by Haruka Iwao)
     - Add support for multipart upload aborting (patch by Gabriel Andrade)

0.59 Sat Mar 17 09:36:38 GMT 2013
    - Added support for security token authentication (patch by Miquel Ruiz)

0.58 Wed Nov 28 16:22:42 GMT 2012
    - Added support for multi-part upload and multiple objects deletion (patch
      by Robert B. Clarke)

0.57 Sun Sep 16 22:38:38 BST 2012
    - Added support for Content-disposition (initial patch by Michele Beltrame)
    - Added sync_up option to s3cl (patch by Leo Lapworth)
    - Dist::Zilla tidying

0.56 Sun Dec 18 22:22:32 GMT 2011
    - Spelling error (RT #69817, patch from Fabrizio Regalli)
    - Added use_ok tests (RT #72856, suggested by Gregor Herrmann)
    - Added missing use URI::Escape (RT #72857, patch from Gregor Herrmann)
    - Bumped dependency on MooseX::StrictConstructor to 0.16 (RT #73229,
      suggested by Andrew Main)
    - Enforce dependency versions (RT #73193, suggested by Andrew Main)

0.55 Sat Dec 10 00:55:29 GMT 2011
    - Replaced dependency on MooseX::Types::DateTimeX with
      MooseX::Types::DateTime::MoreCoercions (RT #72472).

0.54 Sat Mar 21 21:23:32 BST 2011
    - Fix for a naked qw() warning (patch by David Wheeler)
    - Fixed path issues (patch by Pavel Karoukin)
      *WARNING* THIS MIGHT BREAK EXISTING APPS *WARNING*
    - Author and development information changes

0.53 Tue Mar 30 15:24:19 BST 2010
    - fix authenticated urls to work with EU buckets (patch by Edmund
      von der Burg)
    - tiny POD fix (patch by Frank Wiegand)
    - add an exists method to Net::Amazon::S3::Client (suggested by
      David Golden)
    - fix max_keys when listing buckets (spotted by Andrew Bryan)
    - add content_encoding to Net::Amazon::S3::Object (suggested
      by Egor Korablev)
    - update s3cl: You need to use the module before you use it,
      added the mkbucket command, now you can run the help without
      your AWS secret key, add docs about the env variables you need
      to run s3cl (patches by Jesse Vincent)

0.52 Thu Jul  2 09:17:11 BST 2009
    - increase version prerequisites for some modules so that they
      are known to work

0.51 Tue May 19 08:31:59 BST 2009
    - use MooseX::Types::DateTimeX so that we work with latest Moose
      (noticed by Ted Zlatanov)

0.50 Wed Jan 21 10:42:00 GMT 2009
    - add support for an expires header when putting an object to
      Net::Amazon::S3::Client::Object
    - make all the classes immutable
    - add query_string_authentication_uri() to
      Net::Amazon::S3::Client::Object, suggested by Meng Wong

0.49 Tue Jan 13 09:04:42 GMT 2009
    - add support for listing a bucket with a prefix to
      Net::Amazon::S3::Client::Bucket

0.48 Thu Dec  4 09:24:23 GMT 2008
    - be slightly less strict about bucket names: they can contain uppercase
      letters, Amazon just doesn't recommend it (noticed by Simon Elliott,
      fixes Brackup)

0.47 Tue Dec  2 08:03:39 GMT 2008
    - fix listing with a prefix (spotted by Nobuo Danjou)

0.46 Mon Nov 24 08:53:18 GMT 2008
    - refactor request creation into Net::Amazon::S3::Request
      and many subclasses
    - move to Moose
    - add Net::Amazon::S3::Client and subclasses

0.45 Wed Aug 20 17:06:49 BST 2008
    - make add_key, head_key etc. return all the headers, not
      just the X-Amazon ones (patch by Andrew Hanenkamp)
    - require IO::File 1.14 (noticed by tsw)
    - remove DateTime::Format::Strptime prerequisite as it was not
      being used (noticed by Yen-Ming Lee)
    - do not try and parse non-XML errors (patch by lostlogic)
    - make it possible to store and delete the key "0"
      (patch by Joey Hess)
    - make it possible to store empty files (patch by BDOLAN)
    - add Copy support (patch by BDOLAN)
    - add s3cl for command-line access (patch by Leo Lapworth)

0.44 Thu Mar 27 08:35:59 GMT 2008
    - fix bug with storing files consisting of "0" (thanks to
      Martin Atkins)

0.43 Sat Mar  1 10:55:54 GMT 2008
     - add binmode() to support Windows (thanks to Gabriel Weinberg)

0.42 Thu Feb 28 06:39:59 GMT 2008
     - add exponential backoff upon temporary errors with the new
       retry option

0.41 Fri Nov 30 10:42:26 GMT 2007
     - fix the expensive tests (patch by BDOLAN)
     - added support for EU buckets (patch by BDOLAN)

0.40 Tue Oct 30 11:40:42 GMT 2007
     - fix for content length with empty keys by Mark A. Hershberger
     - get_key and get_key_filename now return content_length
     - rewrote synopsis
     - added support for common prefix (thanks to Andy Grundman)

0.39 Sun Aug 19 14:47:01 BST 2007
     - add add_key_filename and get_key_filename which send files
       directly from disk - good for large files (Jim Blomo)
     - support UTF8 keys (Jim Blomo)
     - switch back from Build.PL to Makefile.PL

0.38 Sun Mar  4 16:43:28 GMT 2007
     - use http_proxy and https_proxy environment variables for proxy
       settings (Ask Bjoern Hansen)
     - don't add the Authorization header if one is already specified
       when making a request - good for allowing caching to resources
       that are public. (Ask Bjoern Hansen)

0.37 Fri Oct 13 19:14:57 BST 2006
     - added support for ACLs (thanks to Gordon McCreight)

0.36 Sun Sep 10 16:30:39 BST 2006
     - remove extra warning

0.35 Sun Sep 10 16:25:44 BST 2006
     - added list_bucket_all to stop having to worrying about 'marker'

0.34 Sun Sep 10 07:27:06 BST 2006
     - added next marker and more docs from Jesse Vincent

0.33 Sat Aug 26 16:26:37 BST 2006
     - documentation and test cleanup from Jesse Vincent
     - use HTTP keep alive (patch by Scott Gifford)
     - remove ununused code in _make_request (patch by Scott Gifford)

0.32 Tue Apr 25 19:51:06 BST 2006
     - fix bug with listing buckets with parameters (thanks to karjala)

0.31 Tue Apr  4 21:15:02 BST 2006
     - many patches from Brad Fitzpatrick to make change the API, make
       return values sane, add err/errstr, make Bucket object
     - added a timeout option as suggested by Brad Dixon
     - it's the Brad release!

0.30 Mon Mar 20 20:20:29 GMT 2006
     - initial release