Ctrl+F / Command+F 全文检索
客户案例

相关最佳实践
业务上云 |

传统企业、零售和游戏行业系统分级后单库单服系统云上搭建最佳实践,涉及大部分基础云产品。

专有网络 VPC 云服务器ECS 云数据库RDS MySQL 版 负载均衡 SLB CDN 云速搭
DevOps | 容器&微服务 |

使用云效完成容器应用自动化构建和持续部署

专有网络 VPC 负载均衡 SLB 容器服务 ACK 云效 云速搭
业务上云 |

使用云桌面和VPN网关产品快速构建远程办公环境,在云桌面可以访问企业IDC内的应用和资源

云服务器ECS NAT网关 VPN网关 智能接入网关 云桌面
容器&微服务 |

使用ACK上运行常规业务,业务突发波动时突增业务运行在ECI上/达到成本的最优控制

云数据库RDS MySQL 版 文件存储NAS 容器服务 ACK 云数据库 Redis 版 弹性容器实例 ECI 云速搭
安全&合规 |

使用阿里云实现电商网站运营期间的安全防护,包括防爬风险管理、DDoS防御、风险管理产品的能力及操作

云数据库RDS MySQL 版 负载均衡 SLB DDoS防护 风险识别 爬虫风险管理
中间件 |

介绍如何用 Serverless 应用引擎(SAE)帮助企业极速构建云上微服务应用

专有网络 VPC 负载均衡 SLB 应用实时监控服务 ARMS 云监控 Serverless 应用引擎
业务上云 | 数据库 |

使用Oracle数据库的应用上云,通过ADAM评分、改造、迁移实现数据库迁移到PolarDB(Oracle兼容版),应用访问

专有网络 VPC 云服务器ECS 云数据库PolarDB 数据库和应用迁移 ADAM

温馨提示

未登录用户仅可预览8页内容,请您前往登录后浏览更多企业上云最佳实践案例内容。企业账号建议生成子账号授权访问。

BpFile(id=252, bpId=28, name=Serverless实现网站文件处理, author=null, keyword=函数计算,OSS,网站文件管理, description=使用函数计算实现网站文件处理,包括自动压缩,解压缩文件,截取图片等实用函数, position=null, ossUrl=bp-9LMMRUX5ZO5FW1TT.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=0, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=场景描述 本实践适合使用Severless架构的函数计算产品 来实现一些网站的文件处理的场景中,例如自动 解压文件,自动打包压缩,自动爬取图片,自动 处理图片分辨率等功能。 解决问题 1.搭建函数计算用于网站文件处理 2.自动压缩解压缩文件包 3.自动爬取图片,修改图片分辨率等 产品列表 阿里云函数计算(FunctionCompute) 阿里云对象存储OSS 阿里云日志服务LOG, templateId=null, freetry=null, visitTime=null, visitCount=null, video_url=null, buttonName=null, buttonUrl=null, targetId=null, partner=null, partnerUrl=null, partnerLogo=null)
1FunctionCompute实现网站文件处理 最佳实践 部署架构图 场景描述 本实践适合使用Severless架构的函数计算产 品来实现一些网站的文件处理的场景中,例如 自动解压文件,自动打包压缩,自动爬取图片, 自动处理图片分辨率等功能。 解决问题  1.搭建函数计算用于网站文件处理  2.自动压缩解压缩文件包  3.自动爬取图片,修改图片分辨率等 产品列表  阿里云函数计算(FunctionCompute)  阿里云对象存储OSS  阿里云日志服务LOG
2云服务器ECS(产品名称) 文档模板(手册名称)/法律声明 阿里云智能 FunctionCompute实现网站文 件处理最佳实践 文档版本:20150122(发布日期) 2
3FunctionCompute实现网站文件处理最佳实践 文档版本信息 文本信息 属性 内容 文档名称 FunctionCompute实现网站文件处理最佳实践 文档编号 028 文档版本 V1.6 版本日期 2020-12-29 文档状态 外部发布 制作人 敬海 审阅人 行夜 文档变更记录 版本编号 日期 作者 审核人 说明 v1.0 20190221 敬海 游圣 创建 v1.1 20190307 敬海 文意 更新步骤细节,优化文章架构 增加网页截图服务 v1.2 20190415 敬海 行夜 增加统一图片分辨率并加水印函数 修改模板 v1.3 20190801 敬海 v1.4 20190819 敬海 修改模板 增加最佳实践概述 v1.5 20200121 敬海 增加概览页 V1.6 20201228 敬海 更给为FunctionCompute I
4FunctionCompute实现网站文件处理最佳实践 前言 概述 本文FunctionCompute实现网站文件处理最佳实践。 应用范围 本文介绍如何通过函数计算实现网站文件管理的各种功能,包括创建各种函数的详细 操作步骤。 名词解释  阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基 础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式 运行您的代码,并提供日志查询、性能监控、报警等功能。借助于函数计算,您可以快 速构建任何类型的应用和服务,无需管理和运维。而且,您只需要为代码实际运行所消 耗的资源付费,代码未运行则不产生费用。详见 https://help.aliyun.com/product/50980.html  日志服务(LogService,简称LOG/原SLS)是针对实时数据一站式服务,在阿里集团 经历大量大数据场景锤炼而成。提供日志类数据采集、智能查询分析、消费与投递等功 能,全面提升海量日志处理/分析能力。详见https://www.aliyun.com/product/sls  Serverless,基于Docker容器构建不用管理任何运行环境、仅需编写核心代码的Serverless 架构。Serverless架构主要有以下特点:1.实现了细粒度的计算资源分配。2.不需要预先 分配资源。3.具备真正意义上的高度扩容和弹性。4.按需使用,按需计费。  OSS对象存储,是一款对标AWSS3的产品。海量、安全、低成本、高可靠的云存储服 务,提供99.999999999%的数据可靠性。使用RESTfulAPI 可以在互联网任何位置存储 和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。详见 https://cn.aliyun.com/product/oss II
5FunctionCompute实现网站文件处理最佳实践 目录 法律声明.................................................................................................................................................I 文档版本信息.........................................................................................................................................I 前言.......................................................................................................................................................II 目录......................................................................................................................................................III 最佳实践概述........................................................................................................................................1 1. 前置条件..................................................................................................................................3 2. 资源规划..................................................................................................................................4 3. 搭建函数计算服务..................................................................................................................5 3.1. 创建OSS资源..................................................................................................................5 3.2. 创建日志服务的project...................................................................................................6 3.3. 创建函数计算服务.........................................................................................................10 3.4. 创建compress函数并测试............................................................................................13 3.5. 创建get-object-md5函数并测试..................................................................................29 3.6. 创建uncompress函数并测试........................................................................................35 3.7. 创建get-object-meta函数并测试..................................................................................47 3.8. 创建image-clawer函数并测试.....................................................................................54 3.9. 使用ROS模板创建zip-oss服务..................................................................................61 3.10. 部署网页截图服务.........................................................................................................69 3.11. 部署自动调整图片大小函数.........................................................................................76 4. 附录........................................................................................................................................83 III
6FunctionCompute实现网站文件处理最佳实践 最佳实践概述 场景描述 某图片网站数据管理的场景,主要给客户提供图片标注服务,有以下几个需求: • 上传文件自动更新压缩包 • 客户特定图片更新上传文件到OSS的某个目录后,自动压缩目录下的指定的文 件,压缩后以压缩包的形式来分发给不同的工作组来进行处理,工作组下载后, 需要获取压缩包的MD5值,以验证下载的文件是一致的。 • 上传压缩包自动解压 • 某些对外公开展示的图片处理后,以压缩包形式上传到OSS后,需要自动解压 缩,以图片的格式供前端页面调用,并需要图片的meta信息(需求不确定,用FC 来迅速满足要求) • 自动爬取图片 • 某些细分图片组里,需要从网站爬取一些素材图片,补充到素材库里 • 自动打包文件夹 • 某些图片组,有大量类别,每个类下有很多图片,并且会不定时更新,这部分在 分发时,需要当客户下载时,自动打包,并以压缩包的形式来分发 • 对网页截图并存档,统一图片分辨率并加水印 • 对网页定期截图并存档 • 统一图片分辨率,并加水印 以上场景可以细拆分成如下几个小的函数来处理: • 上传文件自动更新压缩包 • 特定图片更新后,自动更新这些特定文件之前的压缩包(compress函数) • 自动获取压缩包文件的md5值(get-object-md5函数) • 上传压缩包自动解压 • 图片压缩包形式上传到OSS后,需要自动解压缩(uncompress函数) • 自动获取图片文件的meta信息(get-object-meta函数) • 自动爬取图片 • 自动爬取素材网站的图片(image-clawer函数) • 自动打包文件夹 • 要下载某个目录的文件的时候,给定bucket和目录,自动打包目录并返回压缩 包地址供下载(zip-oss函数) • 网页截图 • 截取网页的图片并自动保存到OSS上(html2png函数) • 统一图片分辨率及加水印 • 利用oss的图片处理功能来实现(watermarker函数) 该方案使用了阿里云的如下产品: • 阿里云函数计算(FunctionCompute) • 阿里云对象存储OSS • 阿里云日志服务LOG 1
7FunctionCompute实现网站文件处理最佳实践 方案架构 • 用户执行一定的动作,会触发对应的OSS/HTTP的触发器 • 函数计算发现触发器已经被触发,结合传入的参数,执行对应的函数,从而执行了对应 的动作 • 这个过程中,所有日志都会写入到LOG服务的对应的项目中,方便调试和查询 方案优势 • 对事件和请求能实时动态伸缩,达到智能资源调度 • 毫秒级别的计量数据,按用户使用资源付费 • 虚拟机级别隔离运行,保证用户信息安全 • 使用阿里云动态负载均衡 2
8FunctionCompute实现网站文件处理最佳实践 1.前置条件 在进行本文操作之前,您需要完成以下准备工作:  注册阿里云账号,并完成实名认证。 说明:您可以登录阿里云控制台,并前往实人认证页面 (https://account.console.aliyun.com/v2/#/authc/home),查看是否已经完成实 名认证。  阿里云账户余额大于100元。 说明:您可以登录阿里云控制台,并前往账户总览页面 (https://expense.console.aliyun.com/#/account/home),查看当前账户余额。  阿里云账号下已开通以下阿里云服务: ᅳ OSS服务。 ᅳ 日志服务。 ᅳ 函数计算服务。 ᅳ 资源编排(ROS)服务。  准备一台可以连接外网的Centos主机,用于上传OSS文件测试使用。  注意:本文章里的函数源代码只用于demo,严禁用于生产。  下载本文用到的操作命令和代码: 以CentOS主机为例: #yum-yinstallgit #gitclonehttps://code.aliyun.com/best-practice/028.git #cd028 #ls README.md compress get-object-md5 get-object-metaimage-clawer uncompress watermarker.js zip-oss.zip 如果你是windows主机,请下载windows版本的git:https://git-scm.com/download/win 3