Website Large Video File Upload/Download
Budget: ₹600 – ₹1,500 INR
Objective: Implement a feature that allows users to upload large video files (1 GB and above) to Azure Blob Storage using multipart upload, and enable users to download these files efficiently using Angular 18 and Azure Functions with .NET 8.
Key Features:
Multipart File Upload:
Frontend (Angular 18):
Implement a file uploader in Angular that supports selecting large video files and splitting them into smaller chunks (e.g., 5 MB per chunk).
Provide progress indicators to show the upload status of each chunk.
Backend (Azure Functions with .NET 8):
Develop an Azure Function that handles the multipart upload. The function will receive each chunk and append it to the corresponding file in Azure Blob Storage.
Ensure the Azure Function can handle large files efficiently and maintain integrity across multiple chunks.
File Download:
Frontend (Angular 18):
Implement a file downloader that requests the video file from Azure Blob Storage.
Provide download progress indicators and handle large files by streaming them in chunks if necessary.
Backend (Azure Functions with .NET 8):
Create an Azure Function that handles the download request, efficiently streaming large video files from Blob Storage back to the client.
File Integrity and Management:
Ensure file integrity by implementing checksums or hash verification for each uploaded chunk.
Manage file metadata, such as the file name, size, and upload status, in a database (e.g., Azure Cosmos DB or Azure SQL).
Resume Support:
Implement support for resuming interrupted uploads. If an upload fails partway through, the system should allow the user to resume from where it left off.
Implement similar support for interrupted downloads.
Security and Access Control:
Secure the upload and download endpoints using proper authentication and authorization mechanisms (e.g., Azure Active Directory).
Implement SAS (Shared Access Signature) tokens to securely grant temporary access to the files in Blob Storage.
Scalability:
Ensure the solution can handle multiple concurrent uploads and downloads without performance degradation.
Leverage Azure's scalability features to automatically manage load and storage requirements.
User Interface:
Build an intuitive and responsive user interface in Angular 18, providing clear feedback during file upload and download processes.
Allow users to manage their uploaded files, including viewing, downloading, or deleting them.
Technology Stack:
Frontend: Angular 18
Backend: Azure Functions (.NET 8)
Storage: Azure Blob Storage
File Upload/Download Protocol: HTTP Multipart for upload, HTTP streaming for download
Milestones:
Setup Project and Azure Infrastructure
Implement File Upload (Frontend & Backend)
Implement File Download (Frontend & Backend)
Integrate File Integrity Checks and Resume Support
Implement Security and Access Control
Develop User Interface for File Management
Testing, Optimization, and Deployment
This feature will enable users to upload and download large video files seamlessly, ensuring security, scalability, and a smooth user experience.
Key Features:
Multipart File Upload:
Frontend (Angular 18):
Implement a file uploader in Angular that supports selecting large video files and splitting them into smaller chunks (e.g., 5 MB per chunk).
Provide progress indicators to show the upload status of each chunk.
Backend (Azure Functions with .NET 8):
Develop an Azure Function that handles the multipart upload. The function will receive each chunk and append it to the corresponding file in Azure Blob Storage.
Ensure the Azure Function can handle large files efficiently and maintain integrity across multiple chunks.
File Download:
Frontend (Angular 18):
Implement a file downloader that requests the video file from Azure Blob Storage.
Provide download progress indicators and handle large files by streaming them in chunks if necessary.
Backend (Azure Functions with .NET 8):
Create an Azure Function that handles the download request, efficiently streaming large video files from Blob Storage back to the client.
File Integrity and Management:
Ensure file integrity by implementing checksums or hash verification for each uploaded chunk.
Manage file metadata, such as the file name, size, and upload status, in a database (e.g., Azure Cosmos DB or Azure SQL).
Resume Support:
Implement support for resuming interrupted uploads. If an upload fails partway through, the system should allow the user to resume from where it left off.
Implement similar support for interrupted downloads.
Security and Access Control:
Secure the upload and download endpoints using proper authentication and authorization mechanisms (e.g., Azure Active Directory).
Implement SAS (Shared Access Signature) tokens to securely grant temporary access to the files in Blob Storage.
Scalability:
Ensure the solution can handle multiple concurrent uploads and downloads without performance degradation.
Leverage Azure's scalability features to automatically manage load and storage requirements.
User Interface:
Build an intuitive and responsive user interface in Angular 18, providing clear feedback during file upload and download processes.
Allow users to manage their uploaded files, including viewing, downloading, or deleting them.
Technology Stack:
Frontend: Angular 18
Backend: Azure Functions (.NET 8)
Storage: Azure Blob Storage
File Upload/Download Protocol: HTTP Multipart for upload, HTTP streaming for download
Milestones:
Setup Project and Azure Infrastructure
Implement File Upload (Frontend & Backend)
Implement File Download (Frontend & Backend)
Integrate File Integrity Checks and Resume Support
Implement Security and Access Control
Develop User Interface for File Management
Testing, Optimization, and Deployment
This feature will enable users to upload and download large video files seamlessly, ensuring security, scalability, and a smooth user experience.