Jenkins使用S3 publisher插件构建报Invalid parameter "bucket"错误如何解决
问题原因确认
- 该报错不是S3 publisher插件运行异常,是你使用的
s3Upload语法和当前安装的插件版本不匹配导致的:S3 publisher从V2.0.0及以上版本开始重构了Pipeline语法,不再支持直接传递bucket、file、path这类顶层参数,要求所有上传配置都封装到entries参数数组内,因此Jenkins会识别到非法的bucket顶层参数,给出did you mean "entries"?的提示。
修复方案
1. 调整Pipeline语法适配新版本插件
将原有代码修改为符合新版本规范的写法即可,参考示例如下:
s3Upload( entries: [ [ bucket: "${APP_CONFIG_BUCKET}", sourceFile: "${TARGET}", path: "${BUCKET_PATH}" ] ] )
注意原有file参数需要同步替换为新版本要求的sourceFile字段。
2. 降级插件版本兼容旧语法
如果你有大量存量流水线仍在使用旧版语法,可以将S3 publisher插件降级到V1.17及以下版本,降级后重启Jenkins即可正常运行原有代码。
3. 自动生成匹配版本的正确语法
你可以打开Jenkins自带的「流水线语法」生成器,在步骤下拉框选择s3Upload: Publish artifacts to S3 Bucket,按照界面提示填写对应的桶名、文件路径、上传路径等配置后,点击生成按钮就能得到和当前插件版本完全匹配的正确语法。
内容的提问来源于stack exchange,提问作者user2867582
相关产品推荐
相关产品推荐

