前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用无服务器云函数同步COS对象存储的元信息到ES中

使用无服务器云函数同步COS对象存储的元信息到ES中

原创
作者头像
bellen
修改2019-01-17 17:17:12
10.6K4
修改2019-01-17 17:17:12
举报

背景

对象存储COS是腾讯云提供的一种存储海量文件的分布式存储服务,使用COS可以存储视频、图片、文件等各种内容。对于有海量数据的用户来说,如何管理COS中的数据的云信息成了一个迫切的需求,本文利用腾讯云提供的Serverless执行环境-无服务器云函数SCF解决了这一问题。无服务器云函数SCF支持以COS作为函数触发器,在COS Bucket中有文件发生变更时可以获取事件通知,针对该事件,可以进行变更文件的及时处理和业务通知。

实战过程

COS元信息

  • Bucket: COS桶
  • Key: COS对象标识
  • Content-Type: 文件类型
  • Content-Length: 文件长度
  • ETag:文件的 MD5 值
  • Last-Modified: 文件最后修改时间

以上字段是COS对象最基本的元信息,现在需要把每个新上传的COS对象的元信息作为一条记录,存储在ES中。

使用无服务器云函数

腾讯云无服务器云函数支持由COS事件触发,当有文件上传至用户账户下的COS Bucket时触发用户自定义的云函数执行。

云函数的代码已经上传至github中,可参考该代码进行定制化开发,github地址:https://github.com/gaobinlong/cosMeta2es.

实战过程如下:

1. clone 源码

代码语言:txt
复制
git clone https://github.com/gaobinlong/cosMeta2es

2. 安装依赖包

代码语言:txt
复制
pip install Elasticsearch -t ./

3. 配置cos信息与es集群地址

代码语言:txt
复制
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地址

4. 打包源码

代码语言:txt
复制
打包源码目录为zip格式:
zip cosMeta2es.zip * -r

5.新建云函数

代码语言:txt
复制
新建云函数,基于Get_COS_Object模板,点击完成。

6. 编辑函数

代码语言:txt
复制
新建云函数完成后,在函数详情页中点击"函数代码"TAB页进行代码的编辑,提交方法选择“本地上传”,从本地上传cosMeta2es.zip文件,执行方法修改为”cos2es.main_handler“。点击保存。

7. 配置函数运行环境

代码语言:txt
复制
在函数配置TAB页进行函数运行环境的配置,配置内存大小、网络环境。

8. 配置函数触发方式

代码语言:txt
复制
添加如下图所示的触发方式:

9. 测试函数

在函数代码TAB页中对该函数进行测试:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 实战过程
    • COS元信息
      • 使用无服务器云函数
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档