Luka-J9 commented on code in PR #1246:
URL: https://github.com/apache/pekko-connectors/pull/1246#discussion_r2543108755
##########
s3/src/main/scala/org/apache/pekko/stream/connectors/s3/impl/S3Request.scala:
##########
@@ -18,69 +18,400 @@ import org.apache.pekko.annotation.InternalApi
/**
* Internal Api
*/
-@InternalApi private[s3] sealed trait S3Request
+@InternalApi private[s3] sealed trait S3Request {
+ def allowedHeaders: Set[String]
+}
/**
* Internal Api
*/
-@InternalApi private[s3] case object GetObject extends S3Request
+@InternalApi private[s3] object S3Request {
+ def fromString(str: String): Option[S3Request] = {
+ str match {
+ case "GetObject" => Some(GetObject)
+ case "HeadObject" => Some(HeadObject)
+ case "PutObject" => Some(PutObject)
+ case "InitiateMultipartUpload" => Some(InitiateMultipartUpload)
+ case "UploadPart" => Some(UploadPart)
+ case "CopyPart" => Some(CopyPart)
+ case "DeleteObject" => Some(DeleteObject)
+ case "ListBucket" => Some(ListBucket)
+ case "MakeBucket" => Some(MakeBucket)
+ case "DeleteBucket" => Some(DeleteBucket)
+ case "CheckBucket" => Some(CheckBucket)
+ case "PutBucketVersioning" => Some(PutBucketVersioning)
+ case "GetBucketVersioning" => Some(GetBucketVersioning)
+ case _ => None
+ }
+ }
+
+ val allRequests: List[S3Request] = List(
+ GetObject,
+ HeadObject,
+ PutObject,
+ InitiateMultipartUpload,
+ UploadPart,
+ CopyPart,
+ DeleteObject,
+ ListBucket,
+ MakeBucket,
+ DeleteBucket,
+ CheckBucket,
+ PutBucketVersioning,
+ GetBucketVersioning
+ )
+}
/**
* Internal Api
*/
-@InternalApi private[s3] case object HeadObject extends S3Request
+@InternalApi private[s3] case object GetObject extends S3Request {
+
+ /**
+ * See
[[https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html#API_GetObject_RequestSyntax
GetObject Request Syntax]]
+ * @return all valid headers for GetObject request type
+ */
+ override def allowedHeaders: Set[String] = Set(
+ "Host",
+ "If-Match",
+ "If-Modified-Since",
+ "If-None-Match",
+ "If-Unmodified-Since",
+ "Range",
+ "x-amz-server-side-encryption-customer-algorithm",
+ "x-amz-server-side-encryption-customer-key",
+ "x-amz-server-side-encryption-customer-key-MD5",
+ "x-amz-request-payer",
+ "x-amz-expected-bucket-owner",
+ "x-amz-checksum-mode"
+ )
+
+ override def toString() = "GetObject"
+}
/**
* Internal Api
*/
-@InternalApi private[s3] case object PutObject extends S3Request
+@InternalApi private[s3] case object HeadObject extends S3Request {
+
+ /**
+ * See
[[https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html#API_HeadObject_RequestSyntax
HeadObject Request Syntax]]
+ * @return all valid headers for HeadObject request type
+ */
+ override def allowedHeaders: Set[String] = Set(
+ "Host",
Review Comment:
Interpreted your comment as needing to pull these into the conf so I did so
--
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]