editor.md七牛云上传图片springboot_uni-app或小程序图片、视频上传至七牛云

  • Post author:
  • Post category:小程序


8f01b6e492fa78f45e77db30f2152ea5.png

很多项目使用到了七牛云(第三方云服务平台),用来存取多媒体资源,而且七牛云内置API有很多方便快捷的多媒体文件操作方法。比如,要生成一张图片用来做视频的默认封面。如果手动实现这个功能比较麻烦,而用七牛云就很方便,具体网上有很多教程不做赘述。

而要上传到七牛云首先你得有一个自己的存储空间。到七牛云注册账户。

2c8035784a5bf187663eb8e3b78628ec.png

完成实名认证进入管理控制台并新建存储空间。

565cfaa8acd9f5d2a5090256d658cde7.png

选择对象存储

866d0da8a9aa34bb38012d0b45ce006a.png

新建存储空间要选择位置

不同地区的价格和速度不同。

其次,得有一个接口用来生成upload_token。这是上传凭证,每次上传图片和视频时必须携带upload_token,七牛云才知道是要把它们存在哪里。

至于upload_token怎么生成,官方有详细说明。

拿到upload_token之后就是上传了。

//上传至七牛云uploadFile(user_id, path, success, fail) {console.log('开始上传')let time = new Date()let name = user_id + String(time.getTime());//获取tokenreturn new Promise((resolve, reject) => {uni.request({url: `http://192.168.1.5:8383/getToken/${name}`,header: _JSON_HEADER,method: 'GET',data: {},success: function(response) {console.log('token获取成功')qiniuUploader.upload(path, res => {console.log('上传成功')resolve(res)}, error => {reject(err)}, {region: 'SCN',domain: 'psnobvvdn.bkt.clouddn.com',key: name,uptoken: response.data,});},fail: function(error) {reject(error)}})})}

在成功的回调里调用qiniuUploader.upload()。

代码中字段含义:

url

获取token的接口地址。

name

唯一的文件名,这里可能要自己定义一个规则,比如上述代码里,就是用户id加当前时间,可确保唯一性。

domain

创建七牛云项目后,详情描述里能看到domain的值。

region

创建项目时,选择的位置。