本人新手,求各位大神给点建议!
如题,背景是云开发,比如当前有一个需要提交的表单,其中包括title,description等字段,以及图片,如何才能安全、完整、高效的将信息存入云数据库和存储呢?
我的思考:
1.将图片转为base64,与其他字段一起放入云函数的data中,然后在云端中转成图片保存如存储,然后得到fileID,随字段一起存入数据库。
优势:只进行一次提交。
问题:云函数的data中有大小限制,转成base64后图片不能过大,我尝试过400kb左右的图片就会出现data过大的错误导致无法成功上传,微信的图片压缩我也试过了,还是会存在部分过大,而且这样就无法保存一些需要高清的图片了。
2.先小程序端调用wx.cloud.uploadFile将图片上传到存储,返回得到fileID,然后将fileID随其他字段放入云函数的data中,云端存入数据库。
优势:可上传较大图片。
问题:虽然可以使用随机数,或者使用时间戳,但如何确保用户手机上传时的cloudPath路径唯一?(小程序的存储如果遇到路径重名会覆盖,如何避免)
而且如果在一定特殊场景下,比如信号不稳定,出现图片已经上传成功但得到fileID后在调用云函数时因网络出现无响应导致保存失败,那么云端数据完整性就会出现问题。
所以,我想问问大家有没有比较正确的上传方式,谢谢大家!!
可以在小程序端写一个 UUID 的生成算法