A nicer S3 CLI

s3cli: S3 from the command line, and an ftp-style shell

Profiles hold one service's keys (AWS or any S3-compatible endpoint), kept in the system's credential store; login tries them at once and remembers the buckets they can see, or those named with --bucket. Remembered buckets are listed at / and reached with their own profile's keys. ls, stat, cat, get/mget, put/mput, rm (-r for folders), mkdir and rmdir (at /, buckets), cp and mv, with patterns, -r, stdin and stdout. Large files go up in parts. get --zip streams a folder into a ZIP archive and put --unzip unpacks one into a folder, both with node:zlib's ZIP support; a key or member name that would land outside its folder is refused before anything is written. The interactive shell (bare s3cli on a terminal, or s3cli shell) runs the same commands with a current folder, plus cd, lcd, lls and !command, with history, Ctrl-C to stop a command, and a batch mode for scripts on stdin. One completion engine serves it and bash, zsh, fish and PowerShell, remote folders and files included. The S3 client is ordner.fyi's, vendored by tools/vendor.ts; its event log, which writes to stdout, is replaced by src/observe.ts. CI and the release workflow follow atcli's.


Author Philipp Dunkel Date Commit