.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Net::Amazon::S3::Features 3pm" .TH Net::Amazon::S3::Features 3pm "2018-11-22" "perl v5.28.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Net::Amazon::S3::Features \- Features available in Net::Amazon::S3 .SH "VERSION" .IX Header "VERSION" version 0.85 .SH "API COMPARISON" .IX Header "API COMPARISON" Net::Amazon::S3 supports two APIs with different feature support. .PP This document describes current behaviour. .SS "Error reporting" .IX Subsection "Error reporting" How \s-1API\s0 signals operation error .IP "set S3 err" 4 .IX Item "set S3 err" Operation returns expression evaluated as false and \f(CW\*(C`err\*(C'\fR with \f(CW\*(C`errstr\*(C'\fR are populated from response content .IP "set network error" 4 .IX Item "set network error" Populates S3 err with \f(CW\*(C`network_error\*(C'\fR constant and S3 errstr with http status line (eg: \f(CW\*(C`404 Not Found\*(C'\fR) and throws. .IP "confess" 4 .IX Item "confess" Operation throws using \f(CW\*(C`confess\*(C'\fR .SS "Feature support" .IX Subsection "Feature support" For details see corresponding \f(CW\*(C`api\-operation\*(C'\fR / \f(CW\*(C`client\-operation\*(C'\fR test file .PP .Vb 10 \& |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-| \& | 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 | \& |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-| .Ve .SS "\s-1TODO\s0 plan (asorted, not promised)" .IX Subsection "TODO plan (asorted, not promised)" .IP "normalize error reporting" 4 .IX Item "normalize error reporting" Make every operation to behave similar (especially \f(CW\*(C`Net::Amazon::S3\*(C'\fR .IP "make error reporting pluggable" 4 .IX Item "make error reporting pluggable" With possibility to inject user's own reporting .IP "unify features" 4 .IX Item "unify features" Both APIs should support same set of operations .IP "support all \s-1AWS S3\s0 operations and x\-amz\-* headers" 4 .IX Item "support all AWS S3 operations and x-amz-* headers" https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html .IP "add async \s-1API\s0 (AnyEvent / IO::Async)" 4 .IX Item "add async API (AnyEvent / IO::Async)" .SH "AUTHOR" .IX Header "AUTHOR" Leo Lapworth .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2018 by Amazon Digital Services, Leon Brocard, Brad Fitzpatrick, Pedro Figueiredo, Rusty Conover. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.