使用functiongraph函数对obs中的图片进行压缩-j9九游会登录
方案概述
本实践适用于将单张或批量的图片压缩处理。高质量图片文件通常占用大量存储空间和带宽,导致网站和应用的加载速度变慢,结合对象存储服务obs,使用functiongraph函数可以构建一个高效的图片压缩j9九游会登录的解决方案,对存储在obs桶中的图片进行自动压缩处理,实现存储空间优化与资源高效利用。
约束与限制
- “obs应用事件源”触发器目前仅支持“华北-北京四”、“华北-乌兰察布一”、“华东-上海一”区域,在创建函数和obs桶时请选择上述区域之一。
- 在操作过程中,所创建的函数和obs桶必须位于同一个区域下。
资源和成本规划
表1介绍使用functiongraph函数对obs中的图片进行压缩所需的资源和成本规划。
|
资源 |
资源说明 |
计费说明 |
|---|---|---|
|
对象存储服务 obs |
|
|
|
函数工作流 functiongraph |
|
|
操作流程
下表介绍使用functiongraph函数对obs中的图片进行压缩的总体操作流程。
|
操作流程 |
说明 |
|---|---|
|
创建两个obs桶,源桶用于存储原始图片,目标桶用于存储压缩后图片。 |
|
|
创建云服务委托,授权functiongraph使用其他云服务,确保能与obs服务协同工作。 |
|
|
创建空白函数,配置代码环境和创建obs应用事件源触发器,以实现对obs源桶中上传或更新的图片自动进行压缩。 |
|
|
上传原始图片到obs源桶,图片压缩函数自动执行,在obs目标桶中生成压缩后的图片,验证图片压缩函数正常运行。 |
步骤一:创建两个obs桶
- 登录,进入“对象存储”页签。
- 单击“创建桶”,进入“创建桶”界面。
- 在“创建桶”界面,参考表3填写obs源桶信息。
表3 obs源桶配置 参数名称
参数说明
取值样例
区域
必选参数。
桶所属区域。请选择靠近您业务的区域,以降低网络时延,提高访问速度。桶创建成功后,不支持变更区域。当前“obs应用事件源”触发器仅支持“华北-北京四”、“华北-乌兰察布一”、“华东-上海一”区域。
华北-北京四
桶名称
必选参数。
桶的名称。需全局唯一,桶创建成功后,不支持修改名称。
your-bucket-input
数据冗余存储策略
必选参数。
- 多az存储:数据冗余存储至多个可用区(az),可靠性更高。
- 单az存储:数据仅存储在单个可用区(az),成本更低。
- 桶创建成功后,不支持变更存储策略。
单az存储
存储类别
必选参数。
- 标准存储:适用于有大量热点文件或小文件,且需要频繁访问(平均一个月多次)并快速获取数据的业务场景,支持单az存储和多az存储。
- 低频访问存储:适用于不频繁访问(平均一年少于12次),但需要快速获取数据的业务场景,支持单az存储和多az存储。
- 归档存储:适用于很少访问(平均一年一次),且对数据获取速率要求不高的业务场景,仅支持单az存储。
标准存储
桶策略
必选参数。
桶的读写权限控制。
- 私有:除桶acl授权外的其他用户无桶的访问权限。
- 公共读:任何用户都可以对桶内对象进行读操作。
- 公共读写:任何用户都可以对桶内对象进行读/写/删除操作。
私有
企业项目
必选参数。
企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,默认项目为default。
default
功能配置
可选参数。
关于功能配置的具体说明可参考创建桶。
- 归档数据直读:通过归档数据直读,可以直接下载存储类别为归档存储的数据,无需提前恢复。归档数据直读会收取相应的费用。
- 服务端加密:服务端加密是指obs服务端对客户端上传到obs的对象进行加密存储,开启后需要选择加密密钥。
- worm:开启worm (一次写入多次读取) 功能后,当前桶支持配置保留策略,受保留策略保护的对象版本在指定时间段内不能被删除。
- 标签:标签用于标识obs中的桶,以此达到对obs中的桶进行分类的目的。
- 归档数据直读:未开启
- 服务端加密:未开启
- worm:未开启
- 标签:-
- 重复步骤3,创建obs目标桶。桶名称命名为“your-bucket-output”,其余参数信息与源桶保持一致。
- 完成桶创建后,桶列表有your-bucket-input、your-bucket-output两个桶。
步骤二:创建云服务委托
- 登录,左侧导航栏选择“委托”,进入“委托”页面后,右上角单击“创建委托”。
- 在“创建委托”页面,配置如下参数:
- 委托名称:输入“serverless_trust”。
- 委托类型:选择“云服务”。
- 云服务:选择“函数工作流 functiongraph”。
- 持续时间:选择“永久”。
- 描述:保持默认,无需填写。
- 单击“完成”,系统提示创建成功,单击“立即授权”,进入“授权”界面。
- 在“选择策略”界面搜索并勾选“obs administrator”,单击“下一步”。
图1 选择策略
- 在“设置最小授权范围”界面选择“所有资源”,单击“确定”。
“obs administrator”策略暂不支持指定区域项目资源。
- 系统提示授权成功,单击“完成”,回到“委托”列表,列表中出现“serverless_trust”委托则创建成功。
步骤三:创建图片压缩函数
- 登录,在左侧导航栏选择,进入函数列表界面。
- 单击“创建函数”,进入创建函数界面。
- 选择“创建空白函数”,参考表4填写函数基本信息,填写完成后单击“创建函数”。
表4 配置函数参数 参数名称
参数说明
取值样例
函数类型
必选参数。
- 事件函数:通过触发器来触发函数执行。
- http函数:用户可以直接发送 http 请求到 url 触发函数执行。
事件函数
区域
必选参数。
代码部署的区域。需与obs桶区域保持一致。
华北-北京四
函数名称
必选参数。
函数的名称。可包含字母、数字、下划线和中划线,以大/小写字母开头,以字母或数字结尾,长度不超过60个字符。
fss_examples_image_thumbnail
企业项目
必选参数。
将函数添加至已创建的企业项目中,需与obs桶的企业项目保持一致,默认项目为default。
default
委托名称
可选参数,本实践必选。
委托函数工作流服务访问其他云服务的委托名称。选择步骤二:创建云服务委托中创建的委托。
serverless_trust
运行时
必选参数。
编写函数的语言及其版本。控制台代码编辑器仅支持node.js、python和php语言。
python3.6
- 进入fss_examples_image_thumbnail函数详情页,配置如下信息。
- 下载示例代码。
- 在“代码”页签,选择“上传代码 > zip文件”,添加下载的“fss_examples_image_thumbnail_eg.zip”文件,单击“确定”,代码自动部署。
- 单击页面最底部的“添加依赖包”,添加公共依赖包“pillow-7.1.2”,版本默认选择“1”,单击“确定”。
- 在页签,修改如下配置。
- 执行超时时间:输入“40”。
- 内存:选择“256”。
填写完成后单击“保存”。
- 在页签,单击“编辑环境变量”,在弹出窗口中单击“添加环境变量”,添加表5信息,填写完成后单击“确定”。
表5 环境变量 键
值
说明
output_bucket
your-bucket-output
存储压缩图片的obs目标桶名称。
obs_endpoint
obs.cn-north-4.myhuaweicloud.com
华北-北京四区域的obs服务终端节点(其他区域节点参考)。
- 在页签,单击“创建触发器”,弹出创建触发器界面,参考表6填写触发器基本信息,填写完成后单击“确定”。
表6 配置触发器参数 参数名称
参数说明
取值样例
触发器类型
必选参数。
本实践通过添加obs应用事件源触发器,当对obs桶执行操作时,将生成事件触发函数执行。
obs应用事件源
触发器名称
必选参数。
触发器的名称。只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-128 之间。
image
桶
必选参数。
选择已创建的obs源桶,用于存储原始图片。
your-bucket-input
事件类型
必选参数。
触发事件的类型,本实践通过上传或更新桶对象触发函数执行。
“通过页面或put请求创建或覆盖桶对象。”、“使用post请求创建或覆盖桶对象。”
对象名前缀
可选参数。
用来限制以此关键字开头的对象的事件通知,该限制可以实现对obs对象名的过滤。
保持默认,不填写。
对象名后缀
可选参数。
用来限制以此关键字结尾的对象的事件通知,该限制可以实现对obs对象名的过滤。
保持默认,不填写。
对象名编码
必选参数。
选择是否对对象名进行编码。
默认开启。
步骤四:验证图片压缩
- 进入,单击“your-bucket-input”桶,进入“对象”页签。
- 单击“上传对象”,存储类别选择“标准存储”,添加待压缩图片后单击“确定”,上传成功后如图2所示。
图2 上传图片
- 进入“your-bucket-output”桶对象界面,查看压缩后的图片大小。
图3 压缩图片
为避免产生不必要的存储费用,完成本次体验后,依据实际使用需求,可删除两个obs桶中存储的图片。请注意,删除后无法恢复,请谨慎操作。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨