在企业办公应用或社交媒体应用中,通常需要处理各种类型的文件,如图片、视频和文档。这些文件处理任务包括格式转换、水印添加和内容审核等。文件处理任务往往会消耗大量的计算、存储和网络资源,如果长时间占用这些资源,可能会影响应用的核心功能,进而影响业务稳定性。本方案通过在应用中使用函数计算来处理文件,利用事件驱动和异步任务的方式,将文件处理与核心应用解耦。函数计算具备自动弹性扩展和按使用付费的优势,可以提升文件处理效率和服务稳定性。
本方案使用云服务器ECS和RDS MySQL版提供WEB服务,通过对象存储OSS存储用户文件。采用服务端签名的WEB直传方式,将文件上传直接发送到OSS,减少对应用网络资源的占用。文件上传到OSS后,通过事件驱动机制触发函数计算执行文件处理任务(示例代码是将PPT转换为PDF并添加水印)。处理完成后,通过OSS事件触发的轻量消息队列(原MNS)通知应用。
方案提供的默认设置完成部署后在阿里云上搭建的架构如下图所示。
资源准备:
1个专有网络VPC:为云服务器ECS、云数据库RDS MySQL版等云资源构建云上私有网络。
2台交换机: 分别用于链接云服务器ECS实例和云数据库RDS MySQL版实例。
1台云服务器ECS实例:用于部署业务系统,提供应用服务。
1个云数据库RDS MySQL版实例:为业务系统提供数据服务。
1个对象存储OSS Bucket:用于存储用户上传的文件和处理后的文件。
1个函数计算函数:用于文件处理,解耦在线用户服务和文件处理。
1个轻量消息队列(原MNS):通过感知对象存储OSS Bucket中文件变化,通知应用服务文件处理完成。
部署步骤
1、单击ROS一键部署,在顶部导航栏选择地域,默认华东1(杭州)地域。
建议 ECS 配置选择可用区J、ecs.c7.large(2 vCPU 4 GB);
RDS Mysql 配置选择 mysql.n2e.medium.1(2 vCPU 4 GB)。
2、检查资源之后进行创建。耗时约为8分钟。
方案验证
一、通过上传PPT文件并查看处理结果,验证水印效果
1、在资源栈详情页面,单击输出页签。
2、点击URL之后登录系统
3、在文件管理页面,单击上传新的文件,在上传文件对话框,上传ppt文件,示例要求必须是pptx文件格式。
4、当状态显示为已完成时,点击下载查看,可发现已经添加水印,并且格式为pdf.。
二、通过监控函数计算,验证处理过程
1、进入函数计算控制台,左侧导航栏,点击服务及函数选项,如下图:
2、点击监控,可以看到函数计算处理示例PPT格式文件的耗时情况和调用情况。
3、进入OSS管理控制台,点击Bucket 列表,点击创建的Bucket。
上传的源文件存储在OSS的source目录。
处理后的文件会存储在processed目录。
清理资源
可以使用ROS一键删除创建的云资源,避免继续产生费用
在删除资源栈对话框,选择删除方式为释放资源,然后单击确定,根据提示完成资源释放。