Skip to content

Commit 87ab280

Browse files
Add retry logic for uploading files to storage account
1 parent 67812f7 commit 87ab280

File tree

1 file changed

+32
-23
lines changed

1 file changed

+32
-23
lines changed

infra/scripts/copy_kb_files.sh

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -113,36 +113,45 @@ if [ $retry_count -eq $max_retries ]; then
113113
exit 1
114114
fi
115115

116-
# Upload files to storage account
116+
# Upload files to storage account with retry logic
117+
upload_with_retry() {
118+
local source_folder="$1"
119+
local dest_path="$2"
120+
local description="$3"
121+
local upload_retries=5
122+
local upload_attempt=0
123+
124+
while [ $upload_attempt -lt $upload_retries ]; do
125+
if az storage blob upload-batch \
126+
--account-name "$storageAccountName" \
127+
--destination "$dest_path" \
128+
--source "$source_folder" \
129+
--auth-mode login \
130+
--pattern '*' \
131+
--overwrite \
132+
--output none 2>/dev/null; then
133+
echo "✓ Uploaded $description successfully"
134+
return 0
135+
fi
136+
upload_attempt=$((upload_attempt + 1))
137+
echo " Upload attempt $upload_attempt/$upload_retries failed - waiting 15 seconds..."
138+
sleep 15
139+
done
140+
echo "✗ Failed to upload $description after $upload_retries attempts"
141+
return 1
142+
}
143+
117144
if [ -d "$extractedFolder1" ]; then
118-
echo "✓ Uploading call transcripts"
119-
az storage blob upload-batch \
120-
--account-name "$storageAccountName" \
121-
--destination "$containerName/$extractedFolder1" \
122-
--source "$extractedFolder1" \
123-
--auth-mode login \
124-
--pattern '*' \
125-
--overwrite \
126-
--output none
127-
if [ $? -ne 0 ]; then
128-
echo "✗ Failed to upload call transcripts"
145+
echo "⏳ Uploading call transcripts..."
146+
if ! upload_with_retry "$extractedFolder1" "$containerName/$extractedFolder1" "call transcripts"; then
129147
exit 1
130148
fi
131149
fi
132150

133151
if [ "$usecase" == "telecom" ]; then
134152
if [ -d "$extractedFolder2" ]; then
135-
echo "✓ Uploading audio data"
136-
az storage blob upload-batch \
137-
--account-name "$storageAccountName" \
138-
--destination "$containerName/$extractedFolder2" \
139-
--source "$extractedFolder2" \
140-
--auth-mode login \
141-
--pattern '*' \
142-
--overwrite \
143-
--output none
144-
if [ $? -ne 0 ]; then
145-
echo "✗ Failed to upload audio data"
153+
echo "⏳ Uploading audio data..."
154+
if ! upload_with_retry "$extractedFolder2" "$containerName/$extractedFolder2" "audio data"; then
146155
exit 1
147156
fi
148157
fi

0 commit comments

Comments
 (0)