Skip to content

Unable to upload folder to S3 compatible storage #324

@nadendlaprasad

Description

@nadendlaprasad

Jenkins and plugins versions report

I am able to upload file to s3 but unable to upload all files given a folder name.

withAWS(endpointUrl:'https://s3url.com',credentials:'<creds>') {
s3Upload(pathStyleAccessEnabled: true,bucket:"<bucketname>", file:"foldername",path:"/myfiles/")
}

Throws following error message

org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 83bbee8f-27eb-4a8e-bfc2-ce13d52a3453
com.amazonaws.services.s3.model.AmazonS3Exception: null (Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: tx0000000000000000633aa-00664f35d5-5e27-default; S3 Extended Request ID: 5e27-default-default; Proxy: null), S3 Extended Request ID: 5e27-default-default
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1879)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1418)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1387)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1157)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:814)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:781)

It works fine given the file name for the same code

withAWS(endpointUrl:'https://s3url.com',credentials:'<creds>') {
s3Upload(pathStyleAccessEnabled: true,bucket:"<bucketname>", file:"foldername/filename.ext",path:"/myfiles/")
}

However, I am able to iterate each file and publish to s3 but it takes lot of time as this executes sequentially.

What Operating System are you using (both controller, and any agents involved in the problem)?

Running inside Jenkins agent container

Reproduction steps

withAWS(endpointUrl:'https://s3url.com',credentials:'<creds>') {
s3Upload(pathStyleAccessEnabled: true,bucket:"<bucketname>", file:"foldername",path:"/myfiles/")
}

Expected Results

Expected all files and folders to be published give the folder or directory name.

Actual Results

org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 83bbee8f-27eb-4a8e-bfc2-ce13d52a3453
com.amazonaws.services.s3.model.AmazonS3Exception: null (Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: tx0000000000000000633aa-00664f35d5-5e27-default; S3 Extended Request ID: 5e27-default-default; Proxy: null), S3 Extended Request ID: 5e27-default-default
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1879)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1418)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1387)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1157)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:814)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:781)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:755)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:715)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:697)
	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:561)
	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:541)
	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5558)
	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5505)
	at com.amazonaws.services.s3.AmazonS3Client.access$300(AmazonS3Client.java:423)
	at com.amazonaws.services.s3.AmazonS3Client$PutObjectStrategy.invokeServiceCall(AmazonS3Client.java:6639)
	at com.amazonaws.services.s3.AmazonS3Client.uploadObject(AmazonS3Client.java:1892)
	at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1852)

Anything else?

No response

Are you interested in contributing a fix?

I am happy to contribute fix given the reference to the source code of the respective file/files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions