UNI-APP之uniCloud使用(存储-日志-示例)| 8月更文挑战

这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战javascript

云存储

开发者使用uniCloud的云存储,无需再像传统模式那样单独去购买存储空间、CDN映射、流量采购等;uniCloud云存储支持文本、图片和其余由用户生成的内容存储到云端,并提供CDN下载地址,java

开发者可在客户端使用云存储API,文件上传成功后,系统会自动生成一个资源连接,开发者需保存该文件地址供后续业务下载使用。小程序

即将支持云函数中使用云存储功能。微信小程序

uploadFile(Object object)

上传文件到云存储,阿里云单文件大小限制为100M,腾讯云单文件最大为5G数组

请求参数

Object objectpromise

参数名 类型 必填 默认值 说明 平台差别说明
filePath String - 要上传的文件对象 -

响应参数

字段 类型 说明
code String 状态码,操做成功则不返回
message String 错误描述
fileID String 文件惟一 ID,用来访问文件,建议存储起来
requestId String 请求序列号,用于错误排查

示例代码

uni.chooseImage({
    count: 1,
    success(res) {
        console.log(res);
        if (res.tempFilePaths.length > 0) {
            let filePath = res.tempFilePaths[0]
            //进行上传操做
            // promise
            const result = await uniCloud.uploadFile({
                filePath: filePath
            });
            // callback
            uniCloud.uploadFile({
                filePath: filePath
                },
                success() {},
                fail() {},
                complete() {}
            });
        }
    }
});
复制代码

Tips微信

  • 阿里云返回的fileID为连接形式

deleteFile(Object object)

删除云端文件markdown

请求参数

Object objectapp

字段 类型 必填 说明
fileList .String 要删除的文件 ID 组成的数组,阿里云只支持一次删除一个文件

响应参数

字段 类型 必填 说明
code String 状态码,操做成功则不返回
message String 错误描述
fileList .Object 删除结果组成的数组
requestId String 请求序列号,用于错误排查

fileList定义框架

字段 类型 必填 说明
code String 删除结果,成功为 SUCCESS
fileID String 文件 ID

示例代码

// promise
uniCloud
  .deleteFile({
    fileList: ['cloud://jimmytest-088bef/1534576354877.jpg']
  })
  .then(res => {});
// callback
uniCloud.deleteFile(
  {
    fileList: ['cloud://jimmytest-088bef/1534576354877.jpg'],
    success(){},
    fail(){},
    complete(){}
  }
);
复制代码

普通日志

开发者在云函数内也可使用console.logconsole.infoconsole.warnconsole.error四种方式打印日志。

HBuilderX中查看日志的教程在 快速上手章节

高级日志

高级日志包括如下四种,以此方式输出的日志会持久化存储(有效期30天)。

接口 描述
uniCloud.logger.log 以 log 日志等级输出日志
uniCloud.logger.info 以 info 日志等级输出日志
uniCloud.logger.warn 以 warn 日志等级输出日志
uniCloud.logger.error 以 error 日志等级输出日志

若项目仅链接一个服务空间,uniCloud框架会自动绑定服务空间,开发者无需手动作初始化工做(可理解为类调用)。只有存在多服务空间时,才须要根据本文进行初始化

//项目仅链接了一个服务空间,则无需初始化//可经过uniCloud直接调用云开发的APIuniCloud.callFunction()uniCloud.uploadFile()
复制代码

若项目链接了多个服务空间,uniCloud没法自动绑定;需开发者在客户端代码中,手动调用初始化方法uniCloud.init,绑定服务空间。

uniCloud.init方法会返回一个uniCloud实例,以后云开发API的调用都须要经过该uniCloud实例发起(相似实例调用)。

uniCloud.init方法定义以下:

function init(options):uniCloud
复制代码

uniCloud.init方法接受一个options参数,返回uniCloud实例,uniCloud实例可调用云函数、云存储相关API。

options 参数说明

参数名 类型 必填 默认值 说明
provider String - 目前仅支持aliyun
spaceId String - 服务空间ID,注意是服务空间ID,不是服务空间名称
clientSecret String - 能够在uniCloud控制台服务空间列表中查看

示例代码

//开发者建立了多个服务空间,则需手动初始化
const myCloud = uniCloud.init({
  provider: 'aliyun',
  spaceId: 'xxxx-yyy',
  clientSecret: 'xxxx'
});
//经过uniCloud实例调用云开发的API
myCloud.callFunction()
myCloud.uploadFile()
复制代码

示例

相关文章
相关标签/搜索