From 558af19b76e5f135aab5090648410be1d8589706 Mon Sep 17 00:00:00 2001 From: Myk Date: Sun, 2 Feb 2020 12:35:55 +1100 Subject: [PATCH 1/4] Add S3 object list commands s3-ls and s3-lsl --- aliases | 4 +++- lib/s3-functions | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/aliases b/aliases index c3407bf4..6c1eabcd 100644 --- a/aliases +++ b/aliases @@ -115,6 +115,8 @@ alias rds-db-clusters='~/.bash-my-aws/bin/bma rds-db-clusters' alias rds-db-instances='~/.bash-my-aws/bin/bma rds-db-instances' alias region-each='~/.bash-my-aws/bin/bma region-each' alias regions='~/.bash-my-aws/bin/bma regions' +alias s3-ls='~/.bash-my-aws/bin/bma s3-ls' +alias s3-lsl='~/.bash-my-aws/bin/bma s3-lsl' alias skim-stdin='~/.bash-my-aws/bin/bma skim-stdin' alias stack-arn='~/.bash-my-aws/bin/bma stack-arn' alias stack-asg-instances='~/.bash-my-aws/bin/bma stack-asg-instances' @@ -168,4 +170,4 @@ function region() { else AWS_DEFAULT_REGION="$inputs"; fi -} \ No newline at end of file +} diff --git a/lib/s3-functions b/lib/s3-functions index cfdabaa1..4216f1e0 100644 --- a/lib/s3-functions +++ b/lib/s3-functions @@ -116,3 +116,47 @@ bucket-remove-force() { fi } + +s3-ls() { + + # List of S3 Bucket Objects. + # + # $ s3-ls example-bucket + # object-key + # another-object-key + # + + 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]" + done +} + + +s3-lsl() { + + # Detail List of S3 Bucket Objects. + # + # $ s3-lsl another-example-bucket + # object-key last-modified storage-class owner-display-name etag aize + # another-object-key last-modified storage-class owner-display-name etag aize + # + + 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]" + done +} + From df0dd0d19caeeaea0a64cde581c3f4a4ec2dc024 Mon Sep 17 00:00:00 2001 From: Myk Date: Sun, 2 Feb 2020 12:54:05 +1100 Subject: [PATCH 2/4] Add bash-completion for s3-ls and s3-lsl and fix typo --- bash_completion.sh | 2 ++ lib/s3-functions | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bash_completion.sh b/bash_completion.sh index 8f256004..8a179390 100644 --- a/bash_completion.sh +++ b/bash_completion.sh @@ -141,6 +141,8 @@ complete -F _bma_buckets_completion bucket-acls complete -F _bma_buckets_completion bucket-remove complete -F _bma_buckets_completion bucket-remove-force complete -F _bma_buckets_completion buckets +complete -F _bma_buckets_completion s3-ls +complete -F _bma_buckets_completion s3-lsl complete -F _bma_certs_completion cert-delete complete -F _bma_certs_completion cert-users complete -F _bma_certs_completion certs diff --git a/lib/s3-functions b/lib/s3-functions index 4216f1e0..47fe3fda 100644 --- a/lib/s3-functions +++ b/lib/s3-functions @@ -144,8 +144,8 @@ s3-lsl() { # Detail List of S3 Bucket Objects. # # $ s3-lsl another-example-bucket - # object-key last-modified storage-class owner-display-name etag aize - # another-object-key last-modified storage-class owner-display-name etag aize + # 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 "$@") From 1c200c2b9e6407ae86e32ce99bc3d44715049b30 Mon Sep 17 00:00:00 2001 From: Myk Date: Wed, 12 Feb 2020 10:50:10 +1100 Subject: [PATCH 3/4] Rename and remove short version --- aliases | 3 +-- bash_completion.sh | 3 +-- lib/s3-functions | 65 +++++++++++++++------------------------------- 3 files changed, 23 insertions(+), 48 deletions(-) diff --git a/aliases b/aliases index 6c1eabcd..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' @@ -115,8 +116,6 @@ alias rds-db-clusters='~/.bash-my-aws/bin/bma rds-db-clusters' alias rds-db-instances='~/.bash-my-aws/bin/bma rds-db-instances' alias region-each='~/.bash-my-aws/bin/bma region-each' alias regions='~/.bash-my-aws/bin/bma regions' -alias s3-ls='~/.bash-my-aws/bin/bma s3-ls' -alias s3-lsl='~/.bash-my-aws/bin/bma s3-lsl' alias skim-stdin='~/.bash-my-aws/bin/bma skim-stdin' alias stack-arn='~/.bash-my-aws/bin/bma stack-arn' alias stack-asg-instances='~/.bash-my-aws/bin/bma stack-asg-instances' diff --git a/bash_completion.sh b/bash_completion.sh index 8a179390..f3065740 100644 --- a/bash_completion.sh +++ b/bash_completion.sh @@ -138,11 +138,10 @@ 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 -complete -F _bma_buckets_completion s3-ls -complete -F _bma_buckets_completion s3-lsl complete -F _bma_certs_completion cert-delete complete -F _bma_certs_completion cert-users complete -F _bma_certs_completion certs diff --git a/lib/s3-functions b/lib/s3-functions index 47fe3fda..acefe985 100644 --- a/lib/s3-functions +++ b/lib/s3-functions @@ -55,6 +55,27 @@ 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]" + done +} + bucket-remove() { @@ -116,47 +137,3 @@ bucket-remove-force() { fi } - -s3-ls() { - - # List of S3 Bucket Objects. - # - # $ s3-ls example-bucket - # object-key - # another-object-key - # - - 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]" - done -} - - -s3-lsl() { - - # Detail List of S3 Bucket Objects. - # - # $ s3-lsl another-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]" - done -} - From fef39758e4c7ab5551bd3463cf6b973bfa260ff5 Mon Sep 17 00:00:00 2001 From: Myk Date: Mon, 22 Feb 2021 23:23:22 +1100 Subject: [PATCH 4/4] Removed spaces from empty lines, added column command to improve listings --- lib/s3-functions | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/s3-functions b/lib/s3-functions index acefe985..d513ccd6 100644 --- a/lib/s3-functions +++ b/lib/s3-functions @@ -56,14 +56,14 @@ bucket-acls() { } 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 @@ -72,10 +72,11 @@ bucket-objects() { aws s3api list-objects \ --bucket "$bucket" \ --output text \ - --query "Contents[].[Key, LastModified, StorageClass, Owner.DisplayName, ETag, Size]" + --query "Contents[].[Key, LastModified, StorageClass, Owner.DisplayName, ETag, Size]" | + column -s$'\t' -t done } - + bucket-remove() {