Skip to main content


Is Amazon::S3 a sane choice of S3 client to use for a #perl app? Looks like the others depend on Moose, would like to avoid that if possible. #askFedi
in reply to swagg boi

Are you worried about the time it takes to load #Moose? Because I assure you that isn't where most of your wall clock time will go when dealing with #S3.
#s3 #moose
This entry was edited (3 weeks ago)
in reply to Mark Gardner

@mjgardner No, I just hate how long it takes to build with cpanm and it’s not a module I use for my simple OOP needs. I also found out the files I was going to use are pretty small, like less than 256KB small, so probably won’t even end up bothering with S3 after all (just seems like more effort than it’s worth for such small files)
in reply to swagg boi

Fair enough on not bothering with S3 for your use, then.

The problem is that #AWS’ APIs are so vast, inconsistent, and ever-evolving that any library attempting to cover more than one needs to use some external description format (JSON files in https://github.com/boto/botocore) and thus a metaprogramming system to turn that into callable functions.

So you either use something like #Moose’s Class::MOP or a static class generator like https://metacpan.org/pod/Amazon::API#BOTOCORE-SUPPORT

in reply to Mark Gardner

@mjgardner Good to know Re: the API stuff because I was going to use Linode’s S3-compatible object store… Sounds like that leaves some room for API compatibility issues; if libraries have problems keeping up with the changes then I’m sure a third-party API trying to mimic theirs would have such issues too.
in reply to swagg boi

I would hope that anything seriously advertising itself as S3-compatible regularly tests against the same spec and clients distributed by Amazon
in reply to Mark Gardner

In python when you install botocore it loads 2500+ json files in its data folder. And I am not sure how to clean all that up when I want to ship something tiny that just uses a part of it
in reply to GuySoft

@guysoft Sounds like you need to host a web service to call the web service 😜