Middleware for Secure File Upload and Virus Scanning
需求背景
企业应用程序需要处理上传文件,并将其集成到定义的工作流中。为了安全地提供这种功能,上传的文件需要先进行病毒扫描以确保无病毒。
技术解决方案
该方案采用Azure云平台来实现文件上传和病毒扫描。主要技术包括:
- 安全性:通过角色基础访问控制(RBAC)和共享访问签名(SAS)确保客户端对资源的访问权限。
- 可扩展性与性能:标准Azure存储账户支持高容量限制,满足并发用户同时上传多个文件的需求。
- 可靠性与处理:利用事件网格和队列存储提高消息处理的可靠性和效率。
- 开源病毒扫描服务:在容器实例中运行ClamAV引擎,实现低成本、实时的病毒扫描。
- 安全性:使用用户代理SAS和Azure AD凭据确保上传和下载文件的安全性。
- 成本优化:采用全托管的无服务器架构,按需付费,自动扩展以满足需求。
关键流程
- 文件上传:通过应用网关使用应用服务实现多用户安全上传。
- 事件传递:文档上传事件立即传递至队列存储。
- 文件扫描:消息队列触发自定义函数应用使用ClamAV引擎扫描文件。
- 文件移动:根据ClamAV扫描结果,将无病毒文件移至生产存储容器,有病毒文件保留在暂存存储容器中。
主要特点与优势
- 安全性:遵循最佳安全实践,确保文件传输过程中的安全性。
- 可扩展性:支持高并发用户的文件上传和处理。
- 实时性:实现近实时的病毒扫描。
- 成本效益:采用无服务器设计,按需计费,自动扩展。
总结
该技术方案为客户提供了一种安全可靠的文件上传和病毒扫描功能,确保了实时扫描、安全性、性能和可扩展性的平衡,同时实现了成本优化。