S3GET(1p)

πŸ“¦
version 0.08 Β· 2 versions
  • 0.08 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 0.08 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– s3get β€” from the User Contributed Perl Documentation, section 1p πŸ’–

okay bestie, pull up a chair, we're learning s3get(1p) today and it's gonna be so good, i promise 🫢


✨ NAME ✨

s3get β€” retrieve contents of S3 items πŸŽ€

like... it goes and gets your stuff out of S3. that's the whole vibe.


🌸 SYNOPSIS 🌸

s3get [options]

s3get [options] [ bucket/item ...]

 Options:
   --access-key    AWS Access Key ID
   --secret-key    AWS Secret Access Key
 Environment:
   AWS_ACCESS_KEY_ID
   AWS_ACCESS_KEY_SECRET

so yeah, you can run it with just options, or you can hand it a whole lil list of bucket/item situations and it'll go fetch those πŸ¦‹


πŸ’… OPTIONS πŸ’…

  • --help β€” prints a short lil help message and then dips out. bye πŸ‘‹
  • --man β€” prints the whole entire manual page and exits. yes this one. the one you're reading. very meta of it ✨
  • --verbose β€” tells you what it's doing while it's doing it. live commentary, no cap πŸ‘‘
  • --access-key and --secret-key β€” these set the "AWS Access Key Identifiers" for the AWS account. --access-key is the "Access Key ID" and --secret-key is the "Secret Access Key". think of them as, like, the "username" and "password" for your AWS account, so bestie. keep them confidential. fr fr, do not be posting these πŸ’€

the access keys MUST be specified, either through these command line parameters, or through the AWS_ACCESS_KEY_ID and AWS_ACCESS_KEY_SECRET environment variables. no keys, no service, that's the rule.

and if you put them on the command line, that overrides the environment variables. command line is the main character here 😌

  • --secure β€” uses SSL/TLS HTTPS to talk to the AWS service instead of HTTP. encrypted communication, we love to see it πŸ”₯

🌈 ENVIRONMENT VARIABLES 🌈

  • AWS_ACCESS_KEY_ID and AWS_ACCESS_KEY_SECRET β€” these specify the "AWS Access Key Identifiers" for the AWS account. AWS_ACCESS_KEY_ID holds the "Access Key ID" and AWS_ACCESS_KEY_SECRET holds the "Secret Access Key". again, literally the "username" and "password" to the AWS service, so keep them confidential, okay?? πŸ™ˆ

the access keys MUST be specified, either via these environment variables, or via the --access-key and --secret-key command line parameters. one or the other, bestie, you gotta pick.

and if the command line parameters are set, they override these environment variables. sorry environment, command line wins πŸ’…


πŸŽ€ CONFIGURATION FILE πŸŽ€

if it exists, the configuration options get read from the file ~/.s3-tools πŸ’– the format is the same as the command line options, with one option per line. for example, the file could contain:

--access-key <AWS access key>
--secret-key <AWS secret key>
--secure

so this example config file would specify the AWS access keys and that a secure connection using HTTPS should be used for all communications. one file, all your settings, it's giving organized 🧚


⭐ DESCRIPTION ⭐

retrieves S3 items, and outputs them to stdout. that's it, that's the job 🫢


πŸ’€ BUGS πŸ’€

report bugs to Mark Atwood mark@fallenpegasus.com.

  • occasionally the S3 service will randomly fail for no externally apparent reason 😭 when that happens, this tool should retry, with a delay and a backoff. (should. as in, it currently doesn't. noted.)
  • access to the S3 service can be authenticated with a X.509 certificate instead of via the "AWS Access Key Identifiers". this tool should support that. (it does not. yet.)
  • it might be useful to be able to specify the "AWS Access Key Identifiers" in the user's ~/.netrc file. this tool should support that. (again β€” should. hasn't happened.)
  • errors and warnings are very "Perl-ish", and can be confusing πŸ˜΅β€πŸ’«
  • trying to access an item that does not exist or is not accessible by the user generates less than helpful error messages. so like, you get an error, you just don't get a good one.
  • trying to retrieve a bucket instead of an item is silently skipped. silent. nothing. not a peep. πŸ™ˆ

πŸ”₯ TODO πŸ”₯

 option to write to files instead of stdout
 option to write to paths instead of stdout
 option to write to a tar file stream, for multiple items
 option to write extended file attributes based on S3 & HTTP metadata
 option to have a progress bar

manifesting all of these ✨ (the progress bar one especially, we deserve a progress bar)


πŸ‘‘ AUTHOR πŸ‘‘

written by Mark Atwood mark@fallenpegasus.com.

many thanks to Wotan LLC <http://wotanllc.com>, for supporting the development of these S3 tools. πŸ’–

many thanks to the Amazon AWS engineers for developing S3. absolute icons, no notes 🌟


πŸ¦‹ SEE ALSO πŸ¦‹

these tools use the Net::Amazon:S3 Perl module.

the Amazon Simple Storage Service (S3) is documented at <http://aws.amazon.com/s3>.


and that's the whole page bestie!! this was perl v5.34.0, dated 2022-06-16, and it lives under S3GET(1p) πŸ’œ go forth and retrieve your items, you got this πŸŒΈπŸ’–βœ¨