I needed to know consumed total storage in AWS CodeArtifact. I didn't get this from AWS Console or straight forward aws cli. So I came up with this dirty way ...
#!/bin/bash
export AWS_PROFILE=infolytxdev
domains=$(aws codeartifact list-domains | jq -r ".domains[].name")
total_artifactory_size=0
for d in $domains; do
repos=$(aws codeartifact list-repositories-in-domain --domain $d | jq -r ".repositories[].name")
for r in $repos; do
packages=$(aws codeartifact list-packages --domain $d --repository $r | jq -r ".packages[].package")
for p in $packages; do
packageversions=$(aws codeartifact list-package-versions --package $p --domain $d --repository $r --format pypi | jq -r ".versions[].version")
for pv in $packageversions; do
sizes=$(aws codeartifact list-package-version-assets --domain $d --repo $r --format pypi --package $p --package-version $pv | jq -r ".assets[].size")
echo $d" "$p" "$r" "$pv" "$sizes >>size.tb
total=0
for size in $sizes; do
sum=$(($total + $size))
done
echo "Package Size: $sum" >>size.tb
total_artifactory_size=$((total_artifactory_size + $sum))
done
done
done
done
echo "Total Artifactory Size: $total_artifactory_size"
Any better way to accomplish this?
Top comments (2)
The storage size is listed in the UI. Go to codeartifact -> domains
Thanks, @almenon .