Net::A...:Vendor(3pm)

πŸ’– Net::Amazon::S3::Vendor β€” bestie edition πŸ’–

okay so this is a <pink>perl</pink> manual page, from the User Contributed Perl Documentation corner of the internet, and the module is Net::Amazon::S3::Vendor 🌸


✨ NAME ✨

Net::Amazon::S3::Vendor β€” it's the base class for vendor-specific behaviour πŸŽ€ like, the blueprint that all the S3 service flavours inherit their whole vibe from πŸ’…


🌈 VERSION 🌈

version 0.992 ✨


πŸ¦‹ 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,
        ...
);

like, you just hand your vendor object over to Net::Amazon::S3->new and it takes it from there 🫢


πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the tea β˜• the S3 protocol isn't an Amazon-AWS-only thing β€” so many other object-storage services use it too. They all hand you the same API... except there's just a little difference πŸ™ˆ

Examples? Bestie, I got you πŸ’…

  • You can upload a file, but another provider straight up does not support multipart uploads 😭
  • Or, even though some providers support Signature V4, they might not support the HEAD bucket request needed to fetch it automatically πŸ’€

that's exactly why this class exists β€” to hold all those little per-vendor quirks ✨

πŸ’œ Properties πŸ’œ

host

Required β€” this is where the service lives πŸ“

It's available here so that a vendor class can move its own parameters in and keep everything tidy πŸŽ€

authorization_method

Default: Net::Amazon::S3::Signature::V2 πŸ”

The signature class used to authorize requests β€” it's literally the thing that signs your requests and says "yeah, she's with us" πŸ’…

use_https

Default: true 🌈

Whether to use HTTPS or not. simple as that 🫢

use_virtual_host

Default: whatever authorization_method enforces ✨

Whether to use path style or virtual host access style, and yes those are two different fits πŸ’–

  • path style uses a single host, with the bucket hanging out inside the URI path
  • virtual host style uses bucket-specific virtual hosts πŸ‘‘

default_region

Default: undef 🌸

This is the value that guess_bucket_region will return 🎯

Reach for this when your provider doesn't support the HEAD region request but does use the Signature V4 authorization method πŸ”₯ iykyk

🧚 Methods 🧚

guess_bucket_region ($bucket)

Returns the bucket's region πŸ“βœ¨ that's it, that's the whole method, no cap.


🌸 AUTHOR 🌸

Branislav ZahradnΓ­k <barney@cpan.org> πŸ’–


This software is copyright (c) 2025 by Amazon Digital Services, Leon Brocard, Brad Fitzpatrick, Pedro Figueiredo, Rusty Conover, Branislav ZahradnΓ­k. πŸ‘‘

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. 🫢 (yes bestie, free as in go wild, just keep the same terms, periodt πŸ’…)


ok that's the whole page β€” no skips, no cuts, everything's here πŸ’– go build your vendor class, you're gonna eat πŸ”₯

and that's a wrap, bestie πŸŽ€ this was Net::A...:Vendor(3pm) from the perl v5.40.1 era, dated 2025-12-07, sitting pretty in the User Contributed Perl Documentation section πŸ’…βœ¨ mwah, slay, go forth and sign those requests πŸŒˆπŸ¦‹

πŸ“¦ where this page comes from