收藏
回答

云开发上传文件至云存储空间,如何确定文件名的唯一性。

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 Bug 工具 wx447c2d8574455783 2.6.6

- 需求


我现在打算将录音文件传至云存储中指定文件夹下


- 预期表现


希望上传成功后,会穿一个 fileID 即可,但是发现每次文件都被覆盖,只上传了一个文件,通过官方文档发现,「将本地资源上传至云存储空间,如果上传至同一路径则是覆盖。」,文件名也是包含在路径当中。


- 问题


  1. 云开发上传文件,能不能只专注上传,我只把文件上传到特定目录后,起什么名字我不管,给我返回一个 fileID,便于我业务操作就行

  2. 如何才能在客户端确定唯一的文件名呢,保证上传后的文件不被覆盖?



回答关注问题邀请回答
收藏

3 个回答

  • 悟空
    悟空
    2019-04-30

    2. 调用getFileInfo接口获取文件md5值,以md5命名


    https://developers.weixin.qq.com/miniprogram/dev/api/wx.getFileInfo.html

    2019-04-30
    有用 1
    回复 4
    • Young!
      Young!
      2019-04-30

      非常感谢,试了一下是可行的,如果以后文件上传数量多的话,会不会覆盖旧文件呢?

      2019-04-30
      回复
    • 悟空
      悟空
      2019-04-30回复Young!

      如果是为了避免不同的用户上传同一个文件,那么可以考虑再加一级目录,以用户openid作为目录,即:

      用户openid/md5文件名


      如果还不放心的话,那么再加上时间戳,就能避免覆盖的问题了


      2019-04-30
      1
      回复
    • 悟空
      悟空
      2019-04-30回复Young!

      但是以你的场景如果上传的只是用户自行录制的文件的话,md5就足够了

      2019-04-30
      1
      回复
    • Young!
      Young!
      2019-04-30回复悟空

      非常感谢你,本来打算用七牛云的上传算法,现在解决了一个很大的问题!

      2019-04-30
      回复
  • 茂$。$
    茂$。$
    2019-04-30

    时间戳加进去

    2019-04-30
    有用 1
    回复 1
    • Young!
      Young!
      2019-04-30

      嗯,好的,可以尝试加时间戳

      2019-04-30
      回复
  • 老张
    老张
    2019-04-30

    如果这样,请问我就想用同名文件覆盖原文件的需求怎么办?

    2019-04-30
    有用
    回复 1
    • Young!
      Young!
      2019-04-30

      对!这个情况我没有考虑,像我说的这样做的话确实有问题。

      如果可以的话,上传接口中,通过指定旧文件 fileID 这个参数,来决定是否更新替代旧文件,如果不指定就不会覆盖。

      2019-04-30
      回复
登录 后发表内容