-
Notifications
You must be signed in to change notification settings - Fork 329
/
calculate-container-size.sh
61 lines (49 loc) · 2.05 KB
/
calculate-container-size.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
# Passed validation in Cloud Shell 03/01/2022
# <FullScript>
# Calculate container size
# Variables for storage
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-azuresql-rg-$randomIdentifier"
tag="calculate-container-size"
storage="msdocsstorage$randomIdentifier"
container="msdocs-storage-container-$randomIdentifier"
# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag
# Create storage account
echo "Creating $storage..."
az storage account create --name $storage --resource-group $resourceGroup --location "$location" --sku Standard_LRS
# Create a container
echo "Creating $container on $storage..."
key=$(az storage account keys list --account-name $storage --resource-group $resourceGroup -o json --query [0].value | tr -d '"')
az storage container create --name $container --account-key $key --account-name $storage #--public-access container
# Create sample files to upload as blobs
for i in `seq 1 3`; do
echo $randomIdentifier > container_size_sample_file_$i.txt
done
# Upload sample files to container
az storage blob upload-batch \
--pattern "container_size_sample_file_*.txt" \
--source . \
--destination $container \
--account-key $key \
--account-name $storage
# Calculate total size of container. Use the --query parameter to display only
# blob contentLength and output it in TSV format so only the values are
# returned. Then pipe the results to the paste and bc utilities to total the
# size of the blobs in the container. The bc utility is not supported in Cloud Shell.
bytes=`az storage blob list \
--container-name $container \
--account-key $key \
--account-name $storage \
--query "[*].[properties.contentLength]" \
--output tsv | paste -s -d+ | bc`
# Display total bytes
echo "Total bytes in container: $bytes"
# Delete the sample files created by this script
rm container_size_sample_file_*.txt
# </FullScript>
# echo "Deleting all resources"
# az group delete --name $resourceGroup -y