构建程序
本例提供了为图片打水印功能的程序包,用户可以下载(watermark.zip)、学习使用。
创建程序包
本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。
其中index.py为函数执行的入口文件,index.py中入口函数的代码片段如下,参数“obs_output_bucket”为打水印后的图片存储地址,需要在创建函数时配置自定义参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def handler(event, context):
srcBucket, srcObjName = getObjInfoFromObsEvent(event)
outputBucket = context.getUserData('obs_output_bucket')
client = newObsClient(context)
# download file uploaded by user from obs
localFile = "/tmp/" + srcObjName
downloadFile(client, srcBucket, srcObjName, localFile)
outFileName, outFile = watermark_image(localFile, srcObjName)
# 将转换后的文件上传到新的obs桶中
uploadFileToObs(client, outputBucket, outFileName, outFile)
return 'OK'
|
创建函数
创建函数的时候,必须选择委托包含OBS访问权限的委托,否则不能使用OBS服务。
- 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。
- 单击“创建函数”,进入创建函数流程。
- 填写函数配置信息
- 进入fss_examples_image_watermark函数详情页,进入“代码”页签,添加“pillow-6.2.2”依赖包。
- 进入fss_examples_image_watermark函数详情页,在“配置”页签,输入环境信息,如图4所示。
内存选择:“128”
超时时间输入:“3”
设置环境变量,键obs_output_bucket为index.py文件中定义的存放输出水印图片的OBS桶参数,值hugb-bucket-output为创建OBS桶中创建的存放输出水印图片的OBS桶。obs_region为OBS桶obs_output_bucket所在的Region,以下截图仅供参考,在实际使用中,请根据实际情况替换。
- 单击页面右上角“保存”,保存配置信息。
