- 需求
我现在打算将录音文件传至云存储中指定文件夹下
- 预期表现
希望上传成功后,会穿一个 fileID 即可,但是发现每次文件都被覆盖,只上传了一个文件,通过官方文档发现,「将本地资源上传至云存储空间,如果上传至同一路径则是覆盖。」,文件名也是包含在路径当中。
- 问题
云开发上传文件,能不能只专注上传,我只把文件上传到特定目录后,起什么名字我不管,给我返回一个 fileID,便于我业务操作就行
如何才能在客户端确定唯一的文件名呢,保证上传后的文件不被覆盖?
框架类型 | 问题类型 | 终端类型 | AppID | 基础库版本 |
---|---|---|---|---|
小程序 | Bug | 工具 | wx447c2d8574455783 | 2.6.6 |
3 个回答
2. 调用getFileInfo接口获取文件md5值,以md5命名
https://developers.weixin.qq.com/miniprogram/dev/api/wx.getFileInfo.html
非常感谢,试了一下是可行的,如果以后文件上传数量多的话,会不会覆盖旧文件呢?
如果是为了避免不同的用户上传同一个文件,那么可以考虑再加一级目录,以用户openid作为目录,即:
用户openid/md5文件名
如果还不放心的话,那么再加上时间戳,就能避免覆盖的问题了
但是以你的场景如果上传的只是用户自行录制的文件的话,md5就足够了
非常感谢你,本来打算用七牛云的上传算法,现在解决了一个很大的问题!
时间戳加进去
嗯,好的,可以尝试加时间戳
如果这样,请问我就想用同名文件覆盖原文件的需求怎么办?
对!这个情况我没有考虑,像我说的这样做的话确实有问题。
如果可以的话,上传接口中,通过指定旧文件 fileID 这个参数,来决定是否更新替代旧文件,如果不指定就不会覆盖。