diff --git a/aliases b/aliases index c3407bf4..ea39be04 100644 --- a/aliases +++ b/aliases @@ -38,6 +38,7 @@ alias aws-account-id='~/.bash-my-aws/bin/bma aws-account-id' alias aws-accounts='~/.bash-my-aws/bin/bma aws-accounts' alias aws-panopticon='~/.bash-my-aws/bin/bma aws-panopticon' alias bucket-acls='~/.bash-my-aws/bin/bma bucket-acls' +alias bucket-objects='~/.bash-my-aws/bin/bma bucket-objects' alias bucket-remove='~/.bash-my-aws/bin/bma bucket-remove' alias bucket-remove-force='~/.bash-my-aws/bin/bma bucket-remove-force' alias buckets='~/.bash-my-aws/bin/bma buckets' @@ -168,4 +169,4 @@ function region() { else AWS_DEFAULT_REGION="$inputs"; fi -} \ No newline at end of file +} diff --git a/bash_completion.sh b/bash_completion.sh index 8f256004..f3065740 100644 --- a/bash_completion.sh +++ b/bash_completion.sh @@ -138,6 +138,7 @@ complete -F _bma_aws-accounts_completion aws-account-cost-explorer complete -F _bma_aws-accounts_completion aws-account-cost-recommendations complete -F _bma_aws-accounts_completion aws-accounts complete -F _bma_buckets_completion bucket-acls +complete -F _bma_buckets_completion bucket-objects complete -F _bma_buckets_completion bucket-remove complete -F _bma_buckets_completion bucket-remove-force complete -F _bma_buckets_completion buckets diff --git a/lib/s3-functions b/lib/s3-functions index cfdabaa1..d513ccd6 100644 --- a/lib/s3-functions +++ b/lib/s3-functions @@ -55,6 +55,28 @@ bucket-acls() { done } +bucket-objects() { + + # List of S3 Bucket Objects. + # + # $ bucket-objects example-bucket + # object-key last-modified storage-class owner-display-name etag size + # another-object-key last-modified storage-class owner-display-name etag size + # + + local buckets=$(skim-stdin "$@") + [[ -z "$buckets" ]] && __bma_usage "bucket [bucket]" && return 1 + + local bucket + for bucket in $buckets; do + aws s3api list-objects \ + --bucket "$bucket" \ + --output text \ + --query "Contents[].[Key, LastModified, StorageClass, Owner.DisplayName, ETag, Size]" | + column -s$'\t' -t + done +} + bucket-remove() {