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

Groovy批量删除上传ID函数调用报错,寻求解决方案

问题修复方案

核心错误分析及修复点

  1. 变量名冲突:delete_multiupload函数参数包含upload_id,但在list.each闭包中又用upload_id作为迭代变量,导致作用域内变量重名。只需将迭代变量改为其他名称(如eachUploadId)即可解决该报错。
  2. delete_upload内部变量错误:函数参数为each_upload_id,但拼接URL时误用了未定义的upload_id,需替换为each_upload_id避免空指针异常。
  3. API调用参数错误:delete_upload仅需3个参数,调用时多传了group_name,且存在拼写错误server_ur1,需移除多余参数并修正拼写为server_url。
  4. 方法名拼写错误:readfile→readFile、printIn→println、printin→println,匹配Jenkins Pipeline标准方法命名。
  5. ID列表优化:拆分后的ID可能带空格,添加trim()处理,避免因空格导致API调用失败。

修正后的完整代码

/* 删除单个上传文件的函数 */
def delete_upload(server_url, each_upload_id, authentication){
    // 修复:使用参数each_upload_id拼接URL
    def delete_upload_url = server_url + "/api/v1/uploads/" + each_upload_id

    def response = httpRequest consoleLogResponseBody: true,
                    contentType: 'APPLICATION_JSON',
                    customHeaders: [[maskValue: false, name: 'id ', value: each_upload_id],
                    [maskValue: false, name: 'Authorization', value: authentication]],
                    httpMode: 'DELETE', ignoreSslErrors: true, responseHandle: 'NONE', url: delete_upload_url,
                    validResponseCodes: '100:599'

    def result = readJSON text: """${response.content}"""
    
    if(response.status == 202){
       println("Status code: 202 (删除请求已接收)")
    } else{ 
       throw new Exception("上传ID无效,请检查后重试。")
    }

    return result['message'].toString()
}

/* 批量删除上传文件的函数 */
def delete_multiupload(server_url, group_name, authentication){
    // 修复:修正方法名为readFile
    String filepath = readFile "/data/Make/upload id.txt"
    println("读取到的原始ID内容: " + filepath)

    // 修复:添加trim()清理ID中的空格
    def list = filepath.split(',').collect { it.trim() }
    println("处理后的ID列表: " + list)

    // 修复:迭代变量改为eachUploadId,避免变量名冲突
    list.each { eachUploadId ->
        println("正在调用删除API,目标ID: $eachUploadId")
        // 修复:移除多余参数group_name,修正server_ur1拼写
        def delete_response = delete_upload(server_url, eachUploadId, authentication)
        println("ID $eachUploadId 删除结果: $delete_response")
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:53:17