NAME
Net::Amazon::S3::Vendor - Base class for vendor specific behaviour
VERSION
version 0.90
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,
...
);
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.
Properties
host
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.
Methods
guess_bucket_region ($bucket)
Returns bucket's region
AUTHOR
Leo Lapworth <llap@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020 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.