This project, inspired by Gwyneth Pena-Siguenza’s “4 projects to get Azure AZ-204 skills (cloud engineer)”, was undertaken as part of my journey towards the AZ-204 certification (Azure Developer Associate), I delve into the creation of a document vault. This vault incorporates features such as document expiration and CDN integration, providing an efficient platform for file sharing.

Project Overview:

This web application enables users to upload files and share them via SAS URLs generated by Azure Blob Storage. One unique aspect is the ability for users to set expiration dates for their files, after which they are automatically deleted. Azure Function Apps serve as the API to interact with Blob Storage, managing SAS URL generation and deletion. Metadata about the files is stored in CosmosDB, which is then presented to users via an Azure Web App.

Development Process:

The steps outlined in GPS’s tutorial gave me a general idea of what needed to be done.The development journey subsequently began with the creation of Azure Function Apps to handle SAS URL generation. Challenges arose, such as deploying functions with different triggers within the same app, leading to the decision to use separate function apps. Subsequently, the web app was developed, followed by the integration of Azure CDN to enhance content delivery speed.

Technologies Used:

  • Azure App Services: Azure web app used for frontend
  • Azure Function Apps: Used to generate SAS tokens and delete files after expiration
  • CosmosDB: Used to store meta data
  • Azure Blob Storage: Used for storing uploaded files
  • Azure CDN: Used for content delivery

Demo:

Architecture Diagram

https://personalporfoliostorage.blob.core.windows.net/personalportfolio-images/ProjectArchitecture.svg

DocuStore

You may need to click on this link if this iframe doesn’t load properly

View on Github

Conclusion:

In conclusion, this project has provided valuable insights into the integration of various Azure services to create a complex Azure solution. Despite challenges, the end result is a functional and efficient platform for secure file sharing. I encourage you to explore the project on GitHub, and feel free to reach out with any questions or feedback.

Resources

projects/az-204 at main · madebygps/projects

Quickstart: Azure Blob Storage client library for Node.js

Develop Azure Functions by using Visual Studio Code

Using Azure Content Delivery Network with SAS