将工件从Jenkins上传到s3

时间:2016-05-16 07:52:05

标签: amazon-s3 jenkins-plugins jenkins-cli

我正在使用 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。

项目配置: Project Config

插件配置: plugin Config

2 个答案:

答案 0 :(得分:0)

您将收到403(禁止)错误,表明您丢失了存储桶的有效凭据,或者未遵守存储桶的安全设置(例如服务器端加密(SSE))。

首先,更新至最新版本的S3发布者插件-它增加了对SSE的支持,如果您的存储桶需要启用它,则可以在您的存储桶中选中“服务器端加密”框管道配置。

第二,您需要在Jenkins“配置系统”表单中修改S3配置文件。在您的问题中,访问密钥的突出显示的字段为空,必须提供 以及密钥组件。

正确输入配置并确认满足存储桶要求后,就可以将对象推送到S3了。

答案 1 :(得分:-2)

当我试图通过Jenkins将工件推送到S3存储桶时,我遇到了同样的问题。后来我发现它丢错了,因为我在Jenkins配置中提供了一个错误的Bucket。