logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Net::Amazon::S3::Vendor - Base class for vendor specific behaviour

Author

       Branislav Zahradník <barney@cpan.org>

Description

       S3 protocol is used not only by Amazon AWS but by many other object-storage services.  They provide same
       API, but it's just there's a little difference.

       Examples?

       Allright, you can upload file but other provider does not support multipart uploads.

       Or although some providers support Signature V4 they may not support HEAD bucket request to fetch it
       automatically.

   Propertieshost

       Required, where service is located.

       Available here so one can move its parameters into its own vendor class.

       authorization_method

       Default: Net::Amazon::S3::Signature::V2

       Signature class used to authorize requests.

       use_https

       Default: true.

       Whether to use HTTPS or not.

       use_virtual_host

       Default: whatever "authorization_method" enforces

       Whether to use path or virtual host access style.  Path style uses single host with bucket contained in
       uri path whereas virtual host style use bucket specific virtual hosts.

       default_region

       Default: undef

       Value that "guess_bucket_region" will return.

       Use when your provider doesn't support HEAD region request but uses Signature V4 authorization method.

   Methodsguess_bucket_region($bucket)

       Returns bucket's region

Name

       Net::Amazon::S3::Vendor - Base class for vendor specific behaviour

Synopsis

               # use it with Amazon AWS
               my $s3 = Net::Amazon::S3->new (
                       vendor => Net::Amazon::S3::Vendor::Amazon->new,
                       ...,
               );

               # or build your own vendor description
               my $vendor = Net::Amazon::S3::Vendor::Generic->new (
                       host                 => 'my.s3.service',
                       use_https            => 1,
                       use_virtual_host     => 1,
                       authorization_method => 'Net::Amazon::S3::Signature::V2',
               );

               # or
               my $vendor = Net::Amazon::S3::Vendor::Generic->new (
                       host                 => 'my.s3.service',
                       use_https            => 1,
                       use_virtual_host     => 1,
                       authorization_method => 'Net::Amazon::S3::Signature::V4',
                       default_region       => '...',
               );

               # and construct your s3 connection
               my $s3 = Net::Amazon::S3->new (
                       vendor => $vendor,
                       ...
               );

Version

       version 0.991

See Also