HenryS1 opened a new issue, #1543:
URL: https://github.com/apache/pekko-connectors/issues/1543
Hello
After updating pekko connectors to 1.3.0 and the aws sdk to 2.42.2 (which is
the version used by pekko connectors 1.3.0) I get the following error when I
try to run a multipart upload.
```
java.util.concurrent.CompletionException:
software.amazon.awssdk.services.s3.model.S3Exception: The request signature we
calculated does not match the signature you provided. Check your key and
signing method.
```
Previously I was on pekko connectors 1.2.0 and aws sdk 2.29.52.
I noticed this happening in application code but it also happens if I use
the following snippet extracted from S3ITTest.scala in this repository, where I
supply my own bucket name and client.
```
val fileContent = (0 to 1000000).mkString
val createMultipartUploadResponse = client
.createMultipartUpload(
CreateMultipartUploadRequest.builder().bucket(bucketName).key("bar").contentType("text/plain").build())
.join()
val p1 = client
.uploadPart(
UploadPartRequest
.builder()
.bucket(bucketName)
.key("bar")
.partNumber(1)
.uploadId(createMultipartUploadResponse.uploadId())
.build(),
AsyncRequestBody.fromString(fileContent))
.join
val p2 = client
.uploadPart(
UploadPartRequest
.builder()
.bucket(bucketName)
.key("bar")
.partNumber(2)
.uploadId(createMultipartUploadResponse.uploadId())
.build(),
AsyncRequestBody.fromString(fileContent))
.join
client
.completeMultipartUpload(
CompleteMultipartUploadRequest
.builder()
.bucket(bucketName)
.key("bar")
.uploadId(createMultipartUploadResponse.uploadId())
.multipartUpload(
CompletedMultipartUpload
.builder()
.parts(CompletedPart.builder().partNumber(1).eTag(p1.eTag()).build(),
CompletedPart.builder().partNumber(2).eTag(p2.eTag()).build())
.build())
.build())
.join
val result = client
.getObject(GetObjectRequest.builder().bucket(bucketName).key("bar").build(),
AsyncResponseTransformer.toBytes[GetObjectResponse]())
.join
```
The client is constructed like this
```
S3AsyncClient.builder
.credentialsProvider(DefaultCredentialsProvider.builder().build())
.region(region.toAws)
.httpClient(PekkoHttpClient.builder().withActorSystem(system).build())
.build()
```
If I use the netty client instead of the pekko client the request works, but
I want to use the pekko client.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]