4.3 云开发文件存储
4.3.4 删除文件
在小程序端和云函数端,都可以调用API删除云空间中的文件,这两个API的参数和回调函数参数都是一样。每次调用API最多删除50个文件。使用方法如下代码所示:
// 回调风格的API
wx.cloud.deleteFile({
fileList: ['cloud://xxx/example.png'], // FileID数组
success: res => {
// handle success
console.log(res.fileList) //fileList是一个Object[]数组,
},
fail: err => {
//handle err
}
})
执行成功后,res.fileList属性即Object数组,有一个Object对象,该对象有三个字段,fileID,status和errMsg。status为状态码,为0表示删除成功,errMsg为删除操作得到的信息,成功为OK,失败返回失败原因。
(代码敲完,忘了在fileList修改添加真正的fileID,保存编译后返回status为1,errMsg为"STORAGE_FILE_NONEXIST"。修改成功后,status为0,errMsg为OK,开心。
之后将文件夹中图片的fileID添加入fileList,再执行删除操作。在云开发平台文件存储看到文件消失,但文件夹还在,返回上一级刷新后,文件夹消失了。看来空文件夹刷新后会消失
)
4.3.6 获取文件临时url
有时需要用云空间中的文件FileID获取文件的真实链接,可以通过wx.cloud.getTempFileURL方法来实现,代码如下:
// 回调风格的API
wx.cloud.getTempFileURL({
fileList: ['cloud://xxx.png'],
success: res => {
console.log(res.fileList)
/*
fileList 是一个有如下结构的对象数组
[{
fileID: 'cloud://xxx.png', 文件ID
tempFileUrl: '', 文件的临时网络链接
maxAge: 120 * 60 * 1000,// 有效期,单位为秒,默认为86400秒,即一天
}]
实际执行成功后发现里面还有两个参数status,为0成功,errMsg为ok
*/
},
fail: err => {
// handle err
}
})
// Promise风格的API
wx.cloud.getTempFileURL({// 将fileList参数改为Object[]类型,可以自定义临时URL的有效时间
fileList: [{
fileID: 'cloud://xxx.png',
maxAge: 60 * 60, // 修改有效时间为1小时,最大不能超过1天
}]
}).then(res => {
// get temp file URL
console.log(res.fileList)
}).catch(error => {
// handle error
})
(回调函数执行完毕,返回的maxAge真的变为3600了,不再是864000了,开心)
网友评论