# 删除文件

从对象存储空间删除文件,一次最多 50 个

本文档适用于微信小程序中使用,如果你不是微信小程序,请移步适合的文档

# 请求参数

字段 说明 数据类型 默认值 必填
fileList 云文件 ID 列表 Object -
config 配置 Object -
success 成功回调
fail 失败回调
complete 结束回调

# config 对象定义

字段 说明 数据类型
env 使用的环境 ID,填写后忽略 init 指定的环境 String

# success 返回参数

字段 说明 数据类型
fileList 文件列表 Object
errMsg 成功为 ok,失败为失败原因 String

# fileList 的结构

属性 类型 说明
fileID string 云文件 ID
status number 状态码,0 为成功
errMsg string 成功为 ok,失败为失败原因

# fail 返回参数

字段 说明 数据类型
errCode 错误码 Number
errMsg 错误信息,格式 downloadFile:fail msg String

# 使用示例

# 1. Promise 风格

wx.cloud.deleteFile({
  fileList: ['cloud://test.png'], // 对象存储文件 ID 列表,最多50个,从上传文件接口或者控制台获取
}).then(res => {
  console.log(res.fileList)
}).catch(err => {
  console.error(err)
})

# 2. Callback 风格

wx.cloud.deleteFile({
  fileList: ['cloud://test.png'], // 对象存储文件 ID 列表,最多50个,从上传文件接口或者控制台获取
  success: res => {
    console.log(res.fileList)
  },
  fail: err => {
    console.error(err)
  },
  complete: res => {
    console.log(res)
  }
})

# 3. 完整示例

在小程序的任何一个页面 js 替换如下代码,cloud://test.png 替换成自己存在的文件 cloudID,环境 ID 也需要替换成自己的

将在页面载入时,会自动启动删除任务

传入封装的删除方法,可以是一个 CloudID 字符串,也可以是一个数组

Page({
  async onLoad() {
    const result = await this.deleteFile('cloud://test.png')
    console.log(result)
  },
  /**
   * 删除微信云托管对象存储文件
   * @param {*} fileID 对象存储文件ID,可以是单个fileID,也可以是 ID 列表
   */
  async deleteFile(fileID){
    const list = typeof fileID === 'string' ? [fileID] : fileID
    return await wx.cloud.deleteFile({
      fileList: list,
      config: {
        env: 'wxrun-id' // 需要替换自己的环境ID
      }
    })
  }
})

# 资源复用

如果是资源复用,需要先进行初始化,初始化过程是异步,需要在业务中加以处理

在小程序 app.js 中粘贴如下代码,记得修改相关的信息,封装 deleteFile 可以参考上面例子,唯一不同点就是 wx.cloud 替换,其他基本一致

App({
  logger:require('./log.js'),
  async onLaunch() {
    const c1 = new wx.cloud.Cloud({
      resourceAppid: 'wx886699112233', // 环境所属的账号appid
      resourceEnv: 'prod-weruntest', // 微信云托管的环境ID
    })
    await c1.init()
    this.cloud = c1 // 在页面 js 中,可以使用getApp().cloud
    this.cloud.deleteFile({
      fileList: ['cloud://test.png'], // 对象存储文件 ID 列表,最多50个,从上传文件接口或者控制台获取
    }).then(res => {
      console.log(res.fileList)
    }).catch(err => {
      console.error(err)
    })
  }
})