@VisibleForTesting
public void doBuildListing(SequenceFile.Writer fileListWriter, S3MapReduceCpOptions options, List<Path> globbedPaths)
throws IOException {
try {
for (Path path : globbedPaths) {
FileSystem sourceFS = path.getFileSystem(getConf());
path = makeQualified(path);
FileStatus rootStatus = sourceFS.getFileStatus(path);
Path sourcePathRoot = computeSourceRootPath(rootStatus, options);
LOG.info("Root source path is {}", sourcePathRoot);
FileStatus[] sourceFiles = sourceFS.listStatus(path);
boolean explore = (sourceFiles != null && sourceFiles.length > 0);
if (explore || rootStatus.isDirectory()) {
for (FileStatus sourceStatus : sourceFiles) {
if (sourceStatus.isFile()) {
LOG.debug("Recording source-path: {} for copy.", sourceStatus.getPath());
CopyListingFileStatus sourceCopyListingStatus = new CopyListingFileStatus(sourceStatus);
writeToFileListing(fileListWriter, sourceCopyListingStatus, sourcePathRoot, options);
}
if (isDirectoryAndNotEmpty(sourceFS, sourceStatus)) {
LOG.debug("Traversing non-empty source dir: {}", sourceStatus.getPath());
traverseNonEmptyDirectory(fileListWriter, sourceStatus, sourcePathRoot, options);
}
}
}
}
fileListWriter.close();
fileListWriter = null;
} finally {
IoUtil.closeSilently(LOG, fileListWriter);
}
}
SimpleCopyListing.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:circus-train
作者:
评论列表
文章目录