You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google REST API批量删文件遇400错误及500内部错误排查

Google Drive API批量删除文件问题排查与修复

问题一:自定义fetch实现批量删除返回400 Bad Request

你参考相关方案用fetch实现的代码存在多个格式错误,导致请求被拒绝:

错误点分析

  1. Boundary格式错误
    代码中给boundary添加了多余的单引号:

    const separation = `\n--'${boundary}'\n`;
    const ending = `\n--'${boundary}'--`;
    

    标准multipart请求的boundary不需要包裹单引号,正确格式应为--${boundary}。

  2. 子请求格式与冗余头部

    • 子请求的DELETE行末尾存在多余换行和空格,HTTP请求行需要严格格式;
    • 主请求已经携带了Authorization头部,子请求无需重复添加,重复头部会导致格式混乱。
  3. fetch不支持multipart参数
    fetch API的请求配置中没有multipart这个属性,你定义的_multiPart数组完全无效,反而可能让请求体处理出错。

  4. API版本不统一
    批量请求的端点用了Drive v3(https://www.googleapis.com/batch/drive/v3),但子请求用的是v2的删除接口(/drive/v2/files/${current.id}),版本不匹配会导致解析错误。

修复后的代码

const boundary = 'END_OF_PART';
const separation = `\n--${boundary}\n`;
const ending = `\n--${boundary}--`;

// 统一使用v3 API
const requestBody = files.reduce((accum, current) => {
    accum += separation +
        'Content-Type: application/http\n\n' +
        `DELETE https://www.googleapis.com/drive/v3/files/${current.id}\n`;
    return accum;
}, '') + ending;

const url = new URL('https://www.googleapis.com/batch/drive/v3');
const requestOptions = {
    method: 'POST',
    headers: {
        "Content-Type": `multipart/mixed; boundary=${boundary}`, // 必须在Content-Type里指定boundary
        'Authorization': `Bearer ${this.getToken()}`
    },
    body: requestBody
};

try {
    const response = await fetch(url, requestOptions);
    if (!response.ok) {
        const errorText = await response.text();
        console.error('批量删除失败:', errorText);
    } else {
        console.log('批量删除请求已提交');
    }
} catch (err) {
    console.error('请求异常:', err);
}

注意:必须在Content-Type头部明确指定boundary,这是之前代码遗漏的关键项。

问题二:参考XMLHttpRequest方案删除100个文件后返回500内部错误

这个问题的核心原因是Google Drive Batch API的子请求数量限制:

  • Drive API规定单个batch请求中包含的子请求不能超过100个,超过这个数量会触发服务器内部错误(500);
  • 你成功删除100个文件是因为前100个子请求被正常处理,后续请求触发了限制导致报错。

解决方法

将待删除文件列表拆分为每100个一组,分批发送batch请求,每组之间可以添加短暂延迟(比如1-2秒),避免触发频率限制。


内容的提问来源于stack exchange,提问作者DRW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:05:22