You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by st...@apache.org on 2024/10/25 10:23:13 UTC
(hadoop) branch branch-3.4 updated: HADOOP-19309: S3A: CopyFromLocalFile operation fails when the source file does not contain file scheme (#7113)
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 <rh...@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-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org