收藏
回答

wx.cloud.deleteFile删除文件权限如何设置?

执行如下代码,提示:

deleteFile success!

  1. errMsg"STORAGE_EXCEED_AUTHORITY"
  2. fileID"cloud://ble2com-urzc8.626c-ble2com-urzc8-1257980634/hisStorage/ovUYn421urGCY9LVR-26UCwz_hHM/1593919420880.xlsx"
  3. status1

wx.cloud.deleteFile({

fileList: [res.data],

success: res => {

// handle success

console.log('deleteFile success!')

console.log(res.fileList)

},

fail: err => {

// handle error

console.log('deleteFile failed!')

},

complete: res => {

// ...

}

})


检查后台文件权限:“所有用户可读,仅创建者可读写”


再检查应该被删除的文件属性,显示 上传者OpenID是未知:“上传者 Open ID ?”


所以我想,在后台客户端上传文件是有OpenID的,但在云函数里上传文件如何设置OpenID呢?不知道思路对不对,但找了cloud.uploadFile官方的API,没看到有什么相关设置。




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

2 个回答

  • 無遠侯
    無遠侯
    2020-08-23

    小程序的 API 可以在三个地方使用,小程序端、云函数端以及 HTTP 的形式。这里不讨论第三种了。

    云函数端不受限,而小程序端受限。

    你遇到的问题可以通过一楼的方式解决,但为了删除文件就新建个云函数,实在不优雅。

    问题的本质是操作者的openid和文件拥有者的openid不一致,因此第二种方案是把上传的步骤挪到小程序端,如果这个方法不适用你的业务。那么第三种方案,把云存储的权限控制切换为「自定义」,配置为

    { read:true, write: true }
    


    当然一切还是需要根据你的业务来选择和调整。

    2020-08-23
    有用
    回复 1
    • 张玉龙
      张玉龙
      2020-10-03
      感谢,已经通过云函数的方法实现了。
      2020-10-03
      回复
  • Mr.Zhao
    Mr.Zhao
    2020-07-05

    用云函数 cloud.deleteFile

    2020-07-05
    有用
    回复 36
    • 张玉龙
      张玉龙
      2020-07-05
      我就是用的cloud.deleteFile函数啊?程序能够进入删除成功回调,但有错误信息是没有权限删除,但这个文件就是这个ID刚创建的。
      2020-07-05
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-07-05回复张玉龙
      你用的wx.cloud.deleteFile
      2020-07-05
      回复
    • 张玉龙
      张玉龙
      2020-07-05回复Mr.Zhao
      没太明白,你是说不带wx,是让我自己写一个云函数么?
      2020-07-05
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-07-05回复张玉龙
      对啊
      2020-07-05
      回复
    • 张玉龙
      张玉龙
      2020-07-05回复Mr.Zhao
      wx.cloud.deleteFile不建议用么,还是说这个函数兼容性有问题?
      2020-07-05
      回复
    查看更多(31)
登录 后发表内容
问题标签