S3 signature doesn't match expected when prefix contains special chars in listBucket
hombre opened this issue · comments
Hombre commented
Hi there.
Trying to list the content of a bucket with a prefix containing special characters
S3.listBucketAndCommonPrefixes(bucketName, "", prefix = Some("files/Björk/"))
or
S3.listBucket(bucketName, prefix = Some("files/Björk/"))
results in
akka.stream.alpakka.s3.S3Exception: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. For more information, see REST Authenticati
on and SOAP Authentication for details.
This is probably related to #374
Versions used
Akka version: 2.6.19
Alpakka version: 3.0.4
Relevant logs
akka.stream.alpakka.s3.S3Exception: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. For more information, see REST Authentication and SOAP Authentication for details.
at akka.stream.alpakka.s3.S3Exception$.apply(S3Exception.scala:37) ~[akka-stream-alpakka-s3_2.13-3.0.4.jar:3.0.4]
at akka.stream.alpakka.s3.impl.S3Stream$.$anonfun$unmarshalError$1(S3Stream.scala:557) ~[akka-stream-alpakka-s3_2.13-3.0.4.jar:3.0.4]
at scala.util.Success.map(Try.scala:262) ~[scala-library-2.13.8.jar:?]
at scala.concurrent.Future.$anonfun$map$1(Future.scala:240) ~[scala-library-2.13.8.jar:?]
at akka.http.scaladsl.util.FastFuture$FulfilledFuture.transform(FastFuture.scala:83) ~[akka-http-core_2.13-10.2.9.jar:10.2.9]
at scala.concurrent.Future.map(Future.scala:240) ~[scala-library-2.13.8.jar:?]
at scala.concurrent.Future.map$(Future.scala:240) ~[scala-library-2.13.8.jar:?]
at akka.http.scaladsl.util.FastFuture$FulfilledFuture.map(FastFuture.scala:76) ~[akka-http-core_2.13-10.2.9.jar:10.2.9]
at akka.stream.alpakka.s3.impl.S3Stream$.unmarshalError(S3Stream.scala:556) ~[akka-stream-alpakka-s3_2.13-3.0.4.jar:3.0.4]
at akka.stream.alpakka.s3.impl.S3Stream$.entityForSuccess(S3Stream.scala:1423) ~[akka-stream-alpakka-s3_2.13-3.0.4.jar:3.0.4]
at akka.stream.alpakka.s3.impl.S3Stream$.$anonfun$signAndGetAs$1(S3Stream.scala:1365) ~[akka-stream-alpakka-s3_2.13-3.0.4.jar:3.0.4]
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:470) ~[scala-library-2.13.8.jar:?]