答案1
为了能够上传到 S3,您需要将您的凭据保存在 Jenkins 的环境变量中:
AWS_DEFAULT_REGION=<region of bucket>
AWS_ACCESS_KEY_ID=<aws id>
AWS_SECRET_ACCESS_KEY=<your s3 access key>
为此,只需转到 Jenkins - 管理 Jenkins - 配置系统 - 全局属性 - 环境变量
答案2
我认为您可能将 S3 Publisher 插件与 AWS 插件混淆了。
该截图来自 S3 Publisher 插件,https://wiki.jenkins.io/display/JENKINS/S3+Plugin。有警告不要更新到最新版本。看起来管道兼容性已损坏,有此警告“版本 0.10.11(2016 年 12 月 31 日)- 请勿更新 - 管道脚本的向后兼容性已损坏”。
但是,您的管道代码似乎是针对 Jenkins AWS 插件的。https://github.com/jenkinsci/pipeline-aws-plugin。要使用该插件的凭据,您必须执行以下操作之一:
- 将访问密钥和密钥存储在 Jenkins 凭证存储区中。
- 从 Jenkins 的 AWS 配置文件读取。
这些选项记录在插件 README 中https://github.com/jenkinsci/pipeline-aws-plugin
Use Jenkins UsernamePassword credentials information (Username: AccessKeyId, Password: SecretAccessKey):
withAWS(credentials:'nameOfSystemCredentials') {
// do something
}
Use profile information from ~/.aws/config:
withAWS(profile:'myProfile') {
// do something
}
“profile” 是您的 AWS 配置文件的配置文件部分。http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html
然后您就可以使用S3上传功能。https://github.com/jenkinsci/pipeline-aws-plugin#s3upload