This is an automated email from the ASF dual-hosted git repository. stevel pushed a commit to branch branch-3.4 in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.4 by this push: new 46fc04513d5 HADOOP-19309: S3A: CopyFromLocalFile operation fails when the source file does not contain file scheme (#7113) 46fc04513d5 is described below commit 46fc04513d524cd1486259f9461b91cda5d6f275 Author: Syed Shameerur Rahman <rhma...@amazon.com> AuthorDate: Fri Oct 25 15:41:52 2024 +0530 HADOOP-19309: S3A: CopyFromLocalFile operation fails when the source file does not contain file scheme (#7113) Contributed by Syed Shameerur Rahman --- .../apache/hadoop/fs/s3a/impl/CopyFromLocalOperation.java | 2 +- .../org/apache/hadoop/fs/s3a/ITestS3ACopyFromLocalFile.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/CopyFromLocalOperation.java b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/CopyFromLocalOperation.java index a50c31fc860..87e687b7551 100644 --- a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/CopyFromLocalOperation.java +++ b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/CopyFromLocalOperation.java @@ -130,7 +130,7 @@ public class CopyFromLocalOperation extends ExecutingStoreOperation<Void> { this.callbacks = callbacks; this.deleteSource = deleteSource; this.overwrite = overwrite; - this.source = source; + this.source = source.toUri().getScheme() == null ? new Path("file://", source) : source; this.destination = destination; // Capacity of 1 is a safe default for now since transfer manager can also diff --git a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3ACopyFromLocalFile.java b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3ACopyFromLocalFile.java index f9600de6d20..ffc8a990ed9 100644 --- a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3ACopyFromLocalFile.java +++ b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3ACopyFromLocalFile.java @@ -19,6 +19,7 @@ package org.apache.hadoop.fs.s3a; import java.io.File; +import java.io.IOException; import java.util.Arrays; import java.util.Collection; @@ -107,4 +108,15 @@ public class ITestS3ACopyFromLocalFile extends intercept(IllegalArgumentException.class, () -> getFileSystem().copyFromLocalFile(true, true, dest, dest)); } + + @Test + public void testCopyFromLocalWithNoFileScheme() throws IOException { + describe("Copying from local file with no file scheme to remote s3 destination"); + File source = createTempFile("tempData"); + Path dest = path(getMethodName()); + + Path sourcePathWithOutScheme = new Path(source.toURI().getPath()); + assertNull(sourcePathWithOutScheme.toUri().getScheme()); + getFileSystem().copyFromLocalFile(true, true, sourcePathWithOutScheme, dest); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org