Some platforms and environments don't have pip handy, or you might not have root access, or you can't install new software for any number of reasons, or the required libraries are not installed. curl and /bin/sh and openssl are more universal, so it's good to be able to do what you need to do without resorting to installing software.
I don't think the author intended this script to solve everyone's problems. It's an interesting exercise and can be useful in some situations. If it's not useful for your needs, then as has been pointed out there are many many other options.
Even if the script itself is not "practical", it's very informative. It makes it quite simple to translate into another language for the times when you don't want to shell out to another process.
I found this script a couple weeks ago and was very useful for the minimal docker image I was creating. In some cases you have certain constraints when accessing s3 and this script is helpful in those cases.
Here's a couple I made as well for upload/download to S3 before Travis CI had Docker containers with support for caching in OSS projects: https://github.com/tabolario/ci-scripts
These use the V4 signature, which I grabbed from an article somewhere on the subject that I can't seem to find anymore :( The cached-bundle script is inspired and based off the one from devise: https://github.com/plataformatec/devise/blob/master/script/c...
Yeah, thanks for linking to this: the reason I didn't use it was mostly because it was longer than 18 lines :) Nice not to have to track and maintain a version of other people's code when you don't have to.
OK curl is installed by default but if you have to install this script anyway, it's only a `pip install` away...