This is an automated email from the ASF dual-hosted git repository.
tejaskriya pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new b40c95e917 HDDS-13429. Custom metadata headers with uppercase
characters are not supported (#8805)
b40c95e917 is described below
commit b40c95e9172ab35a86c5c9e655076a2394fe5ea4
Author: Hsu Han Wen <[email protected]>
AuthorDate: Wed Jul 16 16:28:57 2025 +0800
HDDS-13429. Custom metadata headers with uppercase characters are not
supported (#8805)
---
.../apache/hadoop/ozone/s3/endpoint/EndpointBase.java | 4 ++--
.../hadoop/ozone/s3/endpoint/TestEndpointBase.java | 18 ++++++++++++++++++
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java
index 78e32d5bec..0f598648be 100644
---
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java
+++
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java
@@ -297,8 +297,8 @@ protected Map<String, String> getCustomMetadataFromHeaders(
Set<String> customMetadataKeys = requestHeaders.keySet().stream()
.filter(k -> {
- if (k.startsWith(CUSTOM_METADATA_HEADER_PREFIX) &&
- !excludeMetadataFields.contains(
+ if (k.toLowerCase().startsWith(CUSTOM_METADATA_HEADER_PREFIX) &&
+ !excludeMetadataFields.contains(
k.substring(
CUSTOM_METADATA_HEADER_PREFIX.length()))) {
return true;
diff --git
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestEndpointBase.java
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestEndpointBase.java
index 15de5f3cfd..ae47655e43 100644
---
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestEndpointBase.java
+++
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestEndpointBase.java
@@ -23,6 +23,7 @@
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.nio.charset.StandardCharsets;
+import java.util.Locale;
import java.util.Map;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
@@ -96,4 +97,21 @@ public void init() { }
assertThat(e.getCode()).contains("MetadataTooLarge");
}
+ @Test
+ public void testCustomMetadataHeadersWithUpperCaseHeaders() throws
OS3Exception {
+ MultivaluedMap<String, String> s3requestHeaders = new
MultivaluedHashMap<>();
+ String key = "CUSTOM-KEY";
+ String value = "custom-value1";
+
s3requestHeaders.add(CUSTOM_METADATA_HEADER_PREFIX.toUpperCase(Locale.ROOT) +
key, value);
+
+ EndpointBase endpointBase = new EndpointBase() {
+ @Override
+ public void init() { }
+ };
+
+ Map<String, String> customMetadata =
endpointBase.getCustomMetadataFromHeaders(s3requestHeaders);
+
+ assertEquals(value, customMetadata.get(key));
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]