一、什么是七牛云?
七牛云是国内领先的以视觉智能和数据智能为核心的企业级云计算服务商,同时也是国内知名智能视频云服务商,累计为 70 多万家企业提供服务,覆盖了国内80%网民。围绕富媒体场景推出了对象存储、融合 CDN 加速、容器云、大数据平台、深度学习平台等产品、并提供一站式智能视频云解决方案。为各行业及应用提供可持续发展的智能视频云生态,帮助企业快速上云,创造更广阔的商业价值。
简而言之就是一家提供网上存储的服务商,实名认证可以获取10G免费空间,对于小型网站存储图片文档已经够了,最主要的是可以减轻你服务器的压力,加快网页加载速度,隐藏真实IP等,好处不用多说,直接上教程。
二、前期准备
1.七牛云注册
进入七牛云官网进行注册,地址:https://www.qiniu.com/
2.获取密钥
完成注册后登录七牛云并进入控制台,在右上角头像处下拉选择【密钥管理】获取AccessKey和SecretKey
3.新建空间
选择【对象存储】下的【空间管理】,点击“新建空间”按钮
完成后点击“空间名称”会跳转到“空间概览”界面,如下图:
域名管理:若需要接入自己已备案好的域名,可以在【域名管理】中进行配置,具体如何配置可参考链接 https://developer.qiniu.com/fusion/1322/how-to-configure-cname-domain-name
三、在Laf中接入七牛云
登录Laf云开发平台,在应用列表中选择一个应用后点击【开发】按钮,进入Laf应用开发IDE
1.添加NPM依赖
点击左下角【NPM依赖】处的“+”按钮,在弹框中搜索“qiniu”,选中第一个后再点击“保存并重启”,等待3秒左右依赖会添加完成
2.添加函数
点击左上角【函数列表】处的“+”按钮,在弹框中输入函数名(比如:file-upload),其他默认,完成后点击“确认”按钮,等待3秒左右函数会添加完成
说明:关于云函数的入门,可点击 https://doc.laf.run/guide/function/ 链接了解详情
3. 云函数完整代码
1)云函数“file-upload”完整代码如下:
import cloud from '@lafjs/cloud'
import {
QiniuStore } from '@/qiniu-store'
const fs = require("fs")
export default async function (ctx: FunctionContext) {
const _body = ctx.body;
const _query = ctx.query;
const _type = _body.type ? _body.type : _query.type;
//参数校验
if (!_type) {
return resultData(-1, '参数type不能为空!');
}
const _files = ctx.files;
switch (_type) {
case 'uploadFile':
// 上传文件
return await uploadFile(_files);
default:
return resultData(-1, '请检查参数type是否有误!');
}
}
// 上传文件
async function uploadFile(files) {
console.log('uploadFile->files', files);
const _files = files;
//参数校验
if (!_files || _files.length == 0) {
return resultData(-1, '未上传文件!');