腾讯云云开发云函数 之 文件导入功能
背景
Twikoo 评论系统要实现导入功能,导入,就需要上传文件。
通过调用云函数,我们能够传递 string、number 等简单的参数,想要上传文件?不太行。
想到云开发环境有一块默认开通的 COS 空间,这块空间允许登录用户上传文件,只要利用这片空间,就可以实现将文件上传给云函数的功能了。
主要思路
- 前端调用 js-sdk 上传文件,获取到 fileID
- 前端将 fileID 作为参数,调用云函数
- 云函数通过 fileID 获取到文件,并解析
前端上传
首先需要用户选择文件,先写一个选择文件的 input 和一个上传文件的 button。
1 | <input type="file" value="" ref="inputFile" /> |
再编写上传的方法。
1 | // 获取用户选择的文件 |
这样一个上传功能就完成了。但我们还需要服务器获取到上传的文件,怎样获得呢?
云函数下载
1 | // 通过接收到的 fileID 读取云存储中的文件 |
好了,云函数已经成功取得前端上传的文件内容了,接下来就可以实现导入逻辑了。
本文仅摘部分关键代码解读,完整代码可在 Twikoo 中参考
- 前端:https://github.com/imaegoo/twikoo/blob/0.3.2/src/view/components/TkAdminImport.vue
- 云函数:https://github.com/imaegoo/twikoo/blob/0.3.2/src/function/twikoo/index.js#L392
最终实现了下图所示的导入功能(故意上传了一个错误的文件)
腾讯云云开发云函数 之 文件导入功能