If you want to reduce server load, you can generate a and allow the Angular app to download directly from Azure.
Your service must request the file as a blob to prevent Angular from trying to parse the binary data as JSON. typescript download file from azure blob storage angular 8
: Your backend should provide a temporary URL with a SAS token appended (e.g., https://windows.net... ). If you want to reduce server load, you
configured in the Azure Portal to allow requests from your Angular app's origin (e.g., http://localhost:4200 ). import { DownloadService } from './download.service'
This is the most secure method as it keeps your storage connection strings hidden on the server. 1. The Angular Service
import { Component } from '@angular/core'; import { DownloadService } from './download.service'; @Component({ ... }) export class FileDownloadComponent { constructor(private downloadService: DownloadService) {} onDownload(name: string) { this.downloadService.downloadFile(name).subscribe((data: Blob) => { const blob = new Blob([data], { type: data.type }); const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; link.download = name; // Filename for the downloaded file link.click(); window.URL.revokeObjectURL(url); // Clean up memory }); } } Use code with caution.