in core/src/main/java/org/apache/stormcrawler/protocol/file/FileResponse.java [47:88]
public FileResponse(String u, Metadata md, FileProtocol fileProtocol) throws IOException {
metadata = new Metadata();
content = new byte[0];
statusCode = HttpStatus.SC_INTERNAL_SERVER_ERROR;
URL url = new URL(u);
if (!url.getPath().equals(url.getFile())) {
LOG.warn("url.getPath() != url.getFile(): {}.", url);
}
String path = "".equals(url.getPath()) ? "/" : url.getPath();
File file = new File(URLDecoder.decode(path, fileProtocol.getEncoding()));
if (!file.exists()) {
statusCode = HttpStatus.SC_NOT_FOUND;
return;
}
if (!file.canRead()) {
statusCode = HttpStatus.SC_UNAUTHORIZED;
return;
}
if (!file.equals(file.getCanonicalFile())) {
metadata.setValue(
HttpHeaders.LOCATION, file.getCanonicalFile().toURI().toURL().toString());
statusCode = HttpStatus.SC_MULTIPLE_CHOICES;
return;
}
if (file.isDirectory()) {
getDirAsHttpResponse(file);
} else if (file.isFile()) {
getFileAsHttpResponse(file);
} else {
statusCode = HttpStatus.SC_INTERNAL_SERVER_ERROR;
return;
}
}