这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战javascript
开发者使用uniCloud
的云存储,无需再像传统模式那样单独去购买存储空间、CDN映射、流量采购等;uniCloud
云存储支持文本、图片和其余由用户生成的内容存储到云端,并提供CDN下载地址,java
开发者可在客户端使用云存储API,文件上传成功后,系统会自动生成一个资源连接,开发者需保存该文件地址供后续业务下载使用。小程序
即将支持云函数中使用云存储功能。微信小程序
上传文件到云存储,阿里云单文件大小限制为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微信
删除云端文件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.log
、console.info
、console.warn
、console.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()
复制代码