This is an automated email from the ASF dual-hosted git repository. wanghailin pushed a commit to branch dev in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push: new cf4bab5be2 [Fix][Connector-V2] Fixed incorrectly setting s3 key in some cases (#8885) cf4bab5be2 is described below commit cf4bab5be2507942b55fba2a0e08f470f90c121b Author: Jia Fan <fanjiaemi...@qq.com> AuthorDate: Thu Mar 6 09:57:26 2025 +0800 [Fix][Connector-V2] Fixed incorrectly setting s3 key in some cases (#8885) --- .../seatunnel/file/s3/config/S3HadoopConf.java | 2 +- .../seatunnel/file/s3/config/S3HadoopConfTest.java | 48 ++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/seatunnel-connectors-v2/connector-file/connector-file-s3/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/s3/config/S3HadoopConf.java b/seatunnel-connectors-v2/connector-file/connector-file-s3/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/s3/config/S3HadoopConf.java index 557403b28a..715e385473 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-s3/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/s3/config/S3HadoopConf.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-s3/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/s3/config/S3HadoopConf.java @@ -82,7 +82,7 @@ public class S3HadoopConf extends HadoopConf { private void putS3SK(Map<String, String> s3Options, ReadonlyConfig config) { if (!config.getOptional(S3ConfigOptions.S3_ACCESS_KEY).isPresent() - && config.getOptional(S3ConfigOptions.S3_SECRET_KEY).isPresent()) { + && !config.getOptional(S3ConfigOptions.S3_SECRET_KEY).isPresent()) { return; } String accessKey = config.get(S3ConfigOptions.S3_ACCESS_KEY); diff --git a/seatunnel-connectors-v2/connector-file/connector-file-s3/src/test/java/org/apache/seatunnel/connectors/seatunnel/file/s3/config/S3HadoopConfTest.java b/seatunnel-connectors-v2/connector-file/connector-file-s3/src/test/java/org/apache/seatunnel/connectors/seatunnel/file/s3/config/S3HadoopConfTest.java new file mode 100644 index 0000000000..f090795d28 --- /dev/null +++ b/seatunnel-connectors-v2/connector-file/connector-file-s3/src/test/java/org/apache/seatunnel/connectors/seatunnel/file/s3/config/S3HadoopConfTest.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.seatunnel.connectors.seatunnel.file.s3.config; + +import org.apache.seatunnel.api.configuration.ReadonlyConfig; +import org.apache.seatunnel.connectors.seatunnel.file.config.HadoopConf; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; +import java.util.Map; + +public class S3HadoopConfTest { + + @Test + void testPutS3SK() { + Map<String, Object> config = new HashMap<>(); + config.put("bucket", "test"); + config.put("access_key", "access_key"); + config.put("secret_key", "secret_key"); + HadoopConf conf = S3HadoopConf.buildWithReadOnlyConfig(ReadonlyConfig.fromMap(config)); + Assertions.assertTrue(conf.getExtraOptions().containsKey("fs.s3n.awsAccessKeyId")); + + config.remove("access_key"); + conf = S3HadoopConf.buildWithReadOnlyConfig(ReadonlyConfig.fromMap(config)); + Assertions.assertTrue(conf.getExtraOptions().containsKey("fs.s3n.awsAccessKeyId")); + + config.remove("secret_key"); + conf = S3HadoopConf.buildWithReadOnlyConfig(ReadonlyConfig.fromMap(config)); + Assertions.assertFalse(conf.getExtraOptions().containsKey("fs.s3n.awsAccessKeyId")); + } +}