table of contents
Net::Amazon::S3::Features(3pm) | User Contributed Perl Documentation | Net::Amazon::S3::Features(3pm) |
NAME¶
Net::Amazon::S3::Features - Features available in Net::Amazon::S3VERSION¶
version 0.85API COMPARISON¶
Net::Amazon::S3 supports two APIs with different feature support.This document describes current behaviour.
Error reporting¶
How API signals operation error- set S3 err
- Operation returns expression evaluated as false and "err" with "errstr" are populated from response content
- set network error
- Populates S3 err with "network_error" constant and S3 errstr with http status line (eg: "404 Not Found") and throws.
- confess
- Operation throws using "confess"
Feature support¶
For details see corresponding "api-operation" / "client-operation" test file|-----------------------+----------------------------+--------------------------| | operation | Net::Amazon::S3 (API) | Net::Amazon::S3::Client | |-----------------------+----------------------------+--------------------------| | service-buckets-list | | | | - returns | Bucket instances in struct | Bucket instances (list) | | - errors | set S3 err | confess | |-----------------------+----------------------------+--------------------------| | bucket-acl-get | | | | - returns | response body (XML) | response body (XML) | | | (undef on Not Found) | | | - errors | set network error | confess | | | (none on Not Found) | | |-----------------------+----------------------------+--------------------------| | bucket-acl-set | | | | - with canned acl | yes, as acl_short | N/A | | - with xml acl | yes, as acl_xml | N/A | | - returns | boolean | N/A | | - errors | set S3 err | N/A | |-----------------------+----------------------------+--------------------------| | bucket-create | | | | - with region | yes | yes | | - returns | Bucket instance | Bucket instance | | - errors | set S3 err | confess | |-----------------------+----------------------------+--------------------------| | bucket-delete | | | | - returns | boolean | true | | - errors | set S3 err | confess | |-----------------------+----------------------------+--------------------------| | bucket-objects-list | | | | - list version 1 | yes | yes | | - list version 2 | no | no | | - common prefixes | supported | not supported | | - list all | list all method | yes | | - returns | struct with list | iterator (Object list) | | - errors | set S3 err | confess during iteration | |-----------------------+----------------------------+--------------------------| | bucket-objects-delete | | | | - returns | boolean | HTTP::Response object | | - errors | set S3 err | confess | |-----------------------+----------------------------+--------------------------| | object-acl-get | | | | - returns | response body (XML) | N/A | | | (undef on Not Found) | N/A | | - errors | set network error | N/A | | | (none on Not Found) | N/A | |-----------------------+----------------------------+--------------------------| | object-acl-set | | | | - with canned acl | yes, as acl_short | N/A | | - with xml acl | yes, as acl_xml | N/A | | - returns | boolean | N/A | | - errors | set S3 err | N/A | |-----------------------+----------------------------+--------------------------| | object-copy | | | | - returns | boolean | N/A | | - errors | set S3 err | N/A | |-----------------------+----------------------------+--------------------------| | object-create | | | | - returns | boolean | empty string | | - errors | set S3 err | confess | |-----------------------+----------------------------+--------------------------| | object-delete | | | | - returns | boolean | true | | - errors | set S3 err | confess | |-----------------------+----------------------------+--------------------------| | object-fetch | | | | - returns | struct with value | value | | | (undef on Not Found) | | | - errors | set network error | confess | | | (none on Not Found) | | |-----------------------+----------------------------+--------------------------| | object-head | | | | - returns | boolean | N/A | | - errors | set S3 err | N/A | |-----------------------+----------------------------+--------------------------|
TODO plan (asorted, not promised)¶
- normalize error reporting
- Make every operation to behave similar (especially "Net::Amazon::S3"
- make error reporting pluggable
- With possibility to inject user's own reporting
- unify features
- Both APIs should support same set of operations
- support all AWS S3 operations and x-amz-* headers
- https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html
- add async API (AnyEvent / IO::Async)
AUTHOR¶
Leo Lapworth <llap@cpan.org>COPYRIGHT AND LICENSE¶
This software is copyright (c) 2018 by Amazon Digital Services, Leon Brocard, Brad Fitzpatrick, Pedro Figueiredo, Rusty Conover.This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
2018-11-22 | perl v5.28.0 |