Got an alert saying my CodeArtifact usage has crossed FreeTier limit. I was trying to find out how much storage is currently consumed but got no clue from AWS Console or even cli.
I ended up listing down all repositories of a domain > then listing down all packages of that domain > then listing down all versions of that package > sum of all assets of the version.
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"
But I don't think this is the proper way. It takes a lot of time to list down everything from asset level.
I was curious if there's any better way to get a glimpse of AWS CodeArtifact Storage usage.