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

如何在Jenkins中获取用户上传文件的原始文件名?

问题

已创建一条从本地向代理节点上传文件的Jenkins流水线,当前使用Stashed File Parameter设置的固定文件名,希望直接使用用户上传的原始文件名,同时移除现有流水线中的string类型参数(filename)。现有脚本可正常运行,需要调整实现上述需求。

原流水线参数配置:仅包含一个名为inputFile的Stashed File类型参数,用于上传文件。

原流水线脚本:

import java.text.SimpleDateFormat
parameters {
    stashedFile(name: 'inputFile', description: 'upload file')
    string(name: 'filename',defaultValue: 'uploadFile', description: 'filename')
}
node('test') {
    stage('upload file') {
        unstash 'inputFile'
        script {
            def fileName = params.filename
            if (fileName == "uploadFile"){
                def now = java.time.LocalDateTime.now()
                fileName = fileName + "${now}"
            }
            def status = sh(script: "mv ./inputFile /tmp/${fileName}", returnStatus: true)
            if (status != 0) {
                currentBuild.result = 'FAILURE'
                error "can't upload file"
            }
        }
    }
    
}
解决方案

Jenkins的Stashed File Parameter会自动保留用户上传文件的原始文件名元数据,无需额外参数传递。只需通过params.inputFile.originalFileName即可直接获取原始文件名,修改后的流水线脚本如下:

parameters {
    stashedFile(name: 'inputFile', description: 'upload file')
}
node('test') {
    stage('upload file') {
        unstash 'inputFile'
        script {
            // 获取上传文件的原始文件名,若为空则用时间戳生成默认文件名
            def fileName = params.inputFile?.originalFileName ?: "uploadFile_${java.time.LocalDateTime.now()}"
            def status = sh(script: "mv ./inputFile /tmp/${fileName}", returnStatus: true)
            if (status != 0) {
                currentBuild.result = 'FAILURE'
                error "无法上传文件"
            }
        }
    }
}

关键说明:

  • 移除了冗余的string类型参数filename,简化参数配置
  • 通过params.inputFile?.originalFileName安全获取原始文件名,使用?.避免空指针异常
  • 保留了原逻辑中的默认文件名兜底:如果原始文件名获取失败(极端情况),自动生成带时间戳的文件名,避免上传失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:23:16