4.3 云开发文件存储
文件存储功能支持将任意数量和格式的文件(如图片和视频)保存在云端,支持 以文件夹的形式将文件归类。
也可以通过文件存储API对文件进行上传、删除、移动、下载和搜索操作。
4.3.1 在控制台中管理文件存储
单击按钮可以实现上传文件,删除文件,新建文件夹,删除文件夹。在文件列表里查询到文件名称、FileID、文件大小及更新时间等信息,在当前路径中通过文件名称的前缀搜索文件。
上传的文件有一个唯一的FileID,在小程序基础库2.3.0以上的版本,image组件和video文件组件都支持云开发的FileID,可通过src属性使用对应文件的FileID,代码如下:
<image src=”cloud://test-8-1322735059/test.png“/>
权限规则 | 使用场景 |
所有用户可读,仅创建者可读/写 | 用户头像、用户公开相册等 |
仅创建者可读/写 | 私密相册、网盘文件等 |
所有用户可读(仅管理端可写) | 文章配图、商品图片等 |
所有用户不可读/写(仅管理端可读/写) | 业务日志等 |
(刚刚意识到创建者不是代码创建者,而是指用户创建自己用户头像相册这个创建者。)
4.3.2 上传文件
小程序端和云函数,可使用API将文件上传至云空间文件存储空间。
在小程序端,使用wx.cloud.uploadFile可以将本地文件上传至云空间,代码如下:
// 使用回调风格的API上传文件,会返回一个uploadTask对象
const uploadTask = wx.cloud.uploadFile({
cloudPath: ‘example.png‘, //上传至云端的路径
filePath: ‘/imgs/StockSnap_MUT1M3ZKZX.jpg‘, //本地文件路径
// 可以根据具体的使用需求对FileID进行一些操作,例如与其他相关信息一起保存在数据库中
},
}
})
// 在uploadTask 对象上可以设置上传进度的监听回调
uploadTask.onProgressUpdate(res => {
console.log(‘上传进度‘, res.progress)
console.log(‘已经上传的数据进度‘, res.totalBytesSent)
console.log(‘预期需要上传的数据总长度‘, res.totalBytesExpectedToSend)
})
// 也可以通过uploadTask上面的abort方法取消上传任务
//上传文件同样也支持Promise风格的API,但是不再返回uploadTask对象
filePath: ‘/imgs/StockSnap_MUT1M3ZKZX.jpg‘
})
如果希望将文件上传云空间的某个文件夹下,只需要将文件夹名称放入cloudPath,加上“/”.
上传文件的本地路径可以通过小程序提供的一些API获取,比如从相册选取图片的APIwx.chooseImage,代码如下:
// tempFilePath是一个string[]类型的值,数组的每一项代表了用户选取的图片的临时地址
const tempFilePaths = res.tempFilePaths
cloudPath: ‘test/example.jpg‘,
filePath:tempFilePaths[0] //由于限制了count为1,因此数组中只有1个元素
})
}
})
原文地址:https://blog.csdn.net/xy2937131682/article/details/134804247
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_48926.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!