HADOOP-19309: S3A: CopyFromLocalFile operation fails when the source file does not contain file scheme (#7113)
Contributed by Syed Shameerur Rahman
This commit is contained in:
parent
d1ce965645
commit
0b3755347c
@ -130,7 +130,7 @@ public CopyFromLocalOperation(
|
|||||||
this.callbacks = callbacks;
|
this.callbacks = callbacks;
|
||||||
this.deleteSource = deleteSource;
|
this.deleteSource = deleteSource;
|
||||||
this.overwrite = overwrite;
|
this.overwrite = overwrite;
|
||||||
this.source = source;
|
this.source = source.toUri().getScheme() == null ? new Path("file://", source) : source;
|
||||||
this.destination = destination;
|
this.destination = destination;
|
||||||
|
|
||||||
// Capacity of 1 is a safe default for now since transfer manager can also
|
// Capacity of 1 is a safe default for now since transfer manager can also
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
package org.apache.hadoop.fs.s3a;
|
package org.apache.hadoop.fs.s3a;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@ -107,4 +108,15 @@ public void testOnlyFromLocal() throws Throwable {
|
|||||||
intercept(IllegalArgumentException.class,
|
intercept(IllegalArgumentException.class,
|
||||||
() -> getFileSystem().copyFromLocalFile(true, true, dest, dest));
|
() -> 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user