# 删除文件

如果你开发微信小程序或公众号H5,请移步适合的文档

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

本接口应在服务器端调用,详细说明参见服务端API

# 请求地址

POST https://api.weixin.qq.com/tcb/batchdeletefile?access_token=ACCESS_TOKEN

Secret置换token需要在Get参数 access_token 传token令牌使用

如果使用微信云调用令牌获取的token,Get参数名 access_token 应替换为 cloudbase_access_token

如果使用开放接口服务则不需要传Get参数 access_token

# 请求参数

属性 类型 默认值 必填 说明
access_token/cloudbase_access_token string 接口调用凭证
env string 云环境ID
fileid_list Array.<string> 文件ID列表

# 返回值

返回的 JSON 数据包

属性 类型 说明
errcode number 错误码
errmsg string 错误信息
delete_list Array.<string> 文件列表

# errcode 的合法值

说明 最低版本
0 请求成功
-1 系统错误
-1000 系统错误
40014 AccessToken 不合法
40097 请求参数错误
40101 缺少必填参数
41001 缺少AccessToken
42001 AccessToken过期
43002 HTTP METHOD 错误
44002 POST BODY 为空
47001 POST BODY 格式错误
85088 该APP未开通云开发
其他错误码 错误码

# 请求数据示例

{
  "env": "test2-4a89da",
  "fileid_list": [
    "cloud://test2-4a89da.7465-test2-4a89da/A.png"
  ]
}

# 返回数据示例

{
  "errcode": 0,
  "errmsg": "ok",
  "delete_list": [
    {
      "fileid": "cloud://test2-4a89da.7465-test2-4a89da/A.png",
      "status": 0,
      "errmsg": "ok"
    }
  ]
}

# 案例讲解

此处用PHP实现一下,需要开启开放接口服务

参照快速入门的方法,部署一个服务,代码如下:

php文件,注意替换微信云托管环境ID

<?php
  if(empty($_GET["cloudid"])) {
    echo sprintf('没有要删除的文件');
  } else {
    $CLOUDID = $_GET["cloudid"];
    if(empty(getenv("CBR_ENV_ID"))) $ENVID = 'wxrun-id'; // 可以忽略,在本地调试时可以添加
    else $ENVID = getenv("CBR_ENV_ID");
    
    $curl = curl_init();
    curl_setopt_array($curl, array(
      CURLOPT_URL => 'http://api.weixin.qq.com/tcb/batchdeletefile',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => '',
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => 'POST',
      CURLOPT_POSTFIELDS =>'{"env":"'.$ENVID.'","fileid_list": ["'.$CLOUDID.'"]}',
      CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json'
      ),
    ));
    $response = curl_exec($curl);
    curl_close($curl);
    echo $response;
  }
?>

dockerFile文件如下:

FROM php:7.3-apache

COPY index.php /var/www/html/

RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"

CMD ["apachectl", "-DFOREGROUND"]

将两个文件组成文件夹,以文件夹形式上传版本,并部署发布

接下来访问公网域名,就可以删除指定的文件了,访问地址参考如下,get参数 cloudid 传文件ID

# 访问自己的公网域名,此处只是示例,cloudID填真实存在的
https://werun-id.ap-shanghai.run.tcloudbase.com/?cloudid=cloud://test

获取的信息结构如下:

{
  "errcode": 0,
  "errmsg": "ok",
  "delete_list": [
    {
      "fileid": "cloud://test",
      "status": 0,
      "errmsg": "ok"
    }
  ]
}