This is an automated email from the ASF dual-hosted git repository.

hepin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-pekko-connectors.git


The following commit(s) were added to refs/heads/main by this push:
     new b9264dcf6 Only pass SSE headers for multipart upload requests
b9264dcf6 is described below

commit b9264dcf63d09b627ae4d0cdec62847648e04b96
Author: Matthew de Detrich <[email protected]>
AuthorDate: Wed Apr 19 02:49:38 2023 +0200

    Only pass SSE headers for multipart upload requests
---
 .../org/apache/pekko/stream/connectors/s3/impl/S3Stream.scala    | 6 +++---
 s3/src/test/scala/docs/scaladsl/S3SinkSpec.scala                 | 9 +++++++--
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/s3/src/main/scala/org/apache/pekko/stream/connectors/s3/impl/S3Stream.scala 
b/s3/src/main/scala/org/apache/pekko/stream/connectors/s3/impl/S3Stream.scala
index 04d836af6..956d86bb0 100644
--- 
a/s3/src/main/scala/org/apache/pekko/stream/connectors/s3/impl/S3Stream.scala
+++ 
b/s3/src/main/scala/org/apache/pekko/stream/connectors/s3/impl/S3Stream.scala
@@ -1014,7 +1014,7 @@ import scala.util.{ Failure, Success, Try }
     import mat.executionContext
     implicit val conf: S3Settings = resolveSettings(attr, mat.system)
 
-    val headers = s3Headers.headersFor(UploadPart)
+    val headers = 
s3Headers.serverSideEncryption.map(_.headersFor(UploadPart)).getOrElse(Nil)
 
     Source
       .future(
@@ -1098,7 +1098,7 @@ import scala.util.{ Failure, Success, Try }
 
     val chunkBufferSize = chunkSize * 2
 
-    val headers = s3Headers.headersFor(UploadPart)
+    val headers = 
s3Headers.serverSideEncryption.map(_.headersFor(UploadPart)).getOrElse(Nil)
 
     Flow
       .fromMaterializer { (mat, attr) =>
@@ -1189,7 +1189,7 @@ import scala.util.{ Failure, Success, Try }
 
     val chunkBufferSize = chunkSize * 2
 
-    val headers = s3Headers.headersFor(UploadPart)
+    val headers = 
s3Headers.serverSideEncryption.map(_.headersFor(UploadPart)).getOrElse(Nil)
 
     Flow
       .fromMaterializer { (mat, attr) =>
diff --git a/s3/src/test/scala/docs/scaladsl/S3SinkSpec.scala 
b/s3/src/test/scala/docs/scaladsl/S3SinkSpec.scala
index 47ed79ab9..9ec90adb3 100644
--- a/s3/src/test/scala/docs/scaladsl/S3SinkSpec.scala
+++ b/s3/src/test/scala/docs/scaladsl/S3SinkSpec.scala
@@ -251,6 +251,8 @@ class S3SinkSpec extends S3WireMockBase with 
S3ClientIntegrationSpec with Option
     val sseCSourceAlgorithmHeader = 
"x-amz-copy-source-server-side-encryption-customer-algorithm"
     val sseCSourceAlgorithmHeaderValue = "AES256"
     val sseCSourceKeyHeader = 
"x-amz-copy-source-server-side-encryption-customer-key"
+    val sseCKeyHeaderMd5 = "x-amz-server-side-encryption-customer-key-MD5"
+    val sseCKeyHeaderMd5Value = "md5"
     val sseCSourceKeyHeaderValue = sseCustomerKey
 
     val result =
@@ -286,10 +288,13 @@ class S3SinkSpec extends S3WireMockBase with 
S3ClientIntegrationSpec with Option
         .withHeader(sseCSourceKeyHeader, new 
EqualToPattern(sseCSourceKeyHeaderValue))
         .withHeader(requestPayerHeader, new 
EqualToPattern(requestPayerHeaderValue)))
 
-    // No SSE-C headers required for CompleteMultipartUpload
+    // SSE headers only
     mock.verifyThat(
       postRequestedFor(urlEqualTo(s"/$targetBucketKey?uploadId=$uploadId"))
-        .withHeader(requestPayerHeader, new 
EqualToPattern(requestPayerHeaderValue)))
+        .withHeader(sseCAlgorithmHeader, new 
EqualToPattern(sseCAlgorithmHeaderValue))
+        .withHeader(sseCKeyHeader, new EqualToPattern(sseCKeyHeaderValue))
+        .withHeader(sseCKeyHeaderMd5, new 
EqualToPattern(sseCKeyHeaderMd5Value))
+        .withoutHeader(requestPayerHeader))
 
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to