我正在使用Jenkins,在Post Build上我想将工件推送到S3。但我收到以下错误:
Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId; Request ID: E9EF9BE1E1D0C011), S3 Extended Request ID: wsyJXgV9If7Yk/GbgI486HrQ5RFZbvnQt/haOBJq3nZ6aLFbWEvKmnHE9ly+05eOab2qTPOQjZU=
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1275)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:873)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:576)
at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:362)
at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:328)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:307)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3659)
at com.amazonaws.services.s3.AmazonS3Client.initiateMultipartUpload(AmazonS3Client.java:2651)
at com.amazonaws.services.s3.transfer.internal.UploadCallable.initiateMultipartUpload(UploadCallable.java:350)
at com.amazonaws.services.s3.transfer.internal.UploadCallable.uploadInParts(UploadCallable.java:178)
at com.amazonaws.services.s3.transfer.internal.UploadCallable.call(UploadCallable.java:121)
at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:139)
at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:47)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
我尝试用Java 1.8最新,java 1.7最新。但一次又一次地得到这个错误。我试过s3发布插件0.8和0.10.1。
您收到403(禁止)错误,表示您缺少存储桶的有效凭据,或者没有遵守存储区的安全设置(如服务器端加密(SSE))。
首先,更新到最新版本的S3发布者插件 - 它增加了对SSE的支持,如果您的存储桶需要启用它,您可以在管道配置中选中“服务器端加密”复选框。
其次,您需要在Jenkins“配置系统”表单中修改S3配置文件。在您的问题中,访问密钥的突出显示字段为空,必须与密钥组件一起提供。
正确输入配置并验证满足存储桶要求后,您应该清楚地将对象推送到S3。
当我试图通过Jenkins将工件推送到S3存储桶时,我遇到了同样的问题。后来我发现它丢错了,因为我在Jenkins配置中提供了一个错误的Bucket。