使用无服务器云函数同步COS对象存储的元信息到ES中
背景
对象存储COS是腾讯云提供的一种存储海量文件的分布式存储服务,使用COS可以存储视频、图片、文件等各种内容。对于有海量数据的用户来说,如何管理COS中的数据的云信息成了一个迫切的需求,本文利用腾讯云提供的Serverless执行环境-无服务器云函数SCF解决了这一问题。无服务器云函数SCF支持以COS作为函数触发器,在COS Bucket中有文件发生变更时可以获取事件通知,针对该事件,可以进行变更文件的及时处理和业务通知。
实战过程
COS元信息
- Bucket: COS桶
- Key: COS对象标识
- Content-Type: 文件类型
- Content-Length: 文件长度
- ETag:文件的 MD5 值
- Last-Modified: 文件最后修改时间
使用无服务器云函数
腾讯云无服务器云函数支持由COS事件触发,当有文件上传至用户账户下的COS Bucket时触发用户自定义的云函数执行。
云函数的代码已经上传至github中,可参考该代码进行定制化开发,github地址:https://github.com/gaobinlong/cosMeta2es.
实战过程如下:
- clone 源码
git clone https://github.com/gaobinlong/cosMeta2es
- 安装依赖包
pip install Elasticsearch -t ./
- 配置cos信息与es集群地址
appid = 1# 请替换为您的 APPID secret_id = u'x'# 请替换为您的 SecretId secret_key = u'y'# 请替换为您的 SecretKey region = u'ap-guangzhou'# 请替换为您bucket 所在的地域 token = ''] esEndPoint = '1.1.1.1' # 请替换为您的ES地址
- 打包源码
打包源码目录为zip格式:
zip cosMeta2es.zip * -r
- 新建云函数
新建云函数,基于Get_COS_Object模板,点击完成。
文章图片
image - 编辑函数
新建云函数完成后,在函数详情页中点击"函数代码"TAB页进行代码的编辑,提交方法选择“本地上传”,从本地上传cosMeta2es.zip文件,执行方法修改为”cos2es.main_handler“。点击保存。
文章图片
image - 配置函数运行环境
在函数配置TAB页进行函数运行环境的配置,配置内存大小、网络环境。
文章图片
image - 配置函数触发方式
添加如下图所示的触发方式:
文章图片
image - 测试函数
文章图片
image
推荐阅读
- 学无止境,人生还很长
- jhipster|jhipster 升级无效问题
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 说的真好
- 解决SpringBoot引用别的模块无法注入的问题
- iOS中的Block