-----
This release replaces boto with boto3. This library upgrade required renaming
several public and private items. In order to simplify code and ease upgrading,
using the old names will cause Exceptions to be raised. Py2 support is
maintained for users with legacy projects.
* switched to boto3
* renames:
* `._s3Connection` -> `._s3_client`
* `.s3_connection` -> `.s3_client`
* `bucket_public_headers` -> `boto3_ExtraArgs_default_public`
* `bucket_archive_headers` -> `boto3_ExtraArgs_default_archive`
Please note the former "*_headers" configurations now use the boto3 arguments
for `ExtraArgs`.
For example:
- bucket_public_headers={
- "x-amz-acl": "public-read"
- "Cache-Control": "max-age=5184000",
- }
is now:
+ boto3_ExtraArgs_default_public={
+ "ACL": "public-read",
+ "CacheControl": "max-age=5184000",
+ }
The `boto3_ExtraArgs_*` configurations are passed directly to boto3 as `ExtraArgs`
* imagehelper.saver.s3 now has `NonCloseableBufferedReader()` a helper class to get around a boto3 bug. see source, tests and demo for more information.
* Dealing with files/filelike objects was an "elegant hack" under Python2. With Python2+Python3 side-by-side support it became messy. Thanks to a workaround needed for a bug in the botocore/s3 transfer library, this was standardized to use `io.xxx` classes and is much cleaner.