kopia lustrzana https://github.com/gaul/s3proxy
Emit HTTP status code inside handler methods
Also remove bogus HTTP 500 internal errors which were sent after the response body.pull/16/head
rodzic
df13f8247c
commit
17b3d6c0ba
|
@ -94,7 +94,6 @@ final class S3ProxyHandler extends AbstractHandler {
|
||||||
public void handle(String target, Request baseRequest,
|
public void handle(String target, Request baseRequest,
|
||||||
HttpServletRequest request, HttpServletResponse response)
|
HttpServletRequest request, HttpServletResponse response)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
int errorCode;
|
|
||||||
String method = request.getMethod();
|
String method = request.getMethod();
|
||||||
String uri = request.getRequestURI();
|
String uri = request.getRequestURI();
|
||||||
String[] path = uri.split("/", 3);
|
String[] path = uri.split("/", 3);
|
||||||
|
@ -126,10 +125,7 @@ final class S3ProxyHandler extends AbstractHandler {
|
||||||
}
|
}
|
||||||
case "GET":
|
case "GET":
|
||||||
if (uri.equals("/")) {
|
if (uri.equals("/")) {
|
||||||
errorCode = handleContainerList(response);
|
handleContainerList(response);
|
||||||
if (errorCode != HttpServletResponse.SC_OK) {
|
|
||||||
response.sendError(errorCode);
|
|
||||||
}
|
|
||||||
baseRequest.setHandled(true);
|
baseRequest.setHandled(true);
|
||||||
return;
|
return;
|
||||||
} else if (uri.lastIndexOf("/") == 0 &&
|
} else if (uri.lastIndexOf("/") == 0 &&
|
||||||
|
@ -190,7 +186,7 @@ final class S3ProxyHandler extends AbstractHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int handleContainerAcl(HttpServletResponse response,
|
private void handleContainerAcl(HttpServletResponse response,
|
||||||
String containerName) {
|
String containerName) {
|
||||||
try (Writer writer = response.getWriter()) {
|
try (Writer writer = response.getWriter()) {
|
||||||
writer.write("<AccessControlPolicy>\r\n" +
|
writer.write("<AccessControlPolicy>\r\n" +
|
||||||
|
@ -212,12 +208,10 @@ final class S3ProxyHandler extends AbstractHandler {
|
||||||
writer.flush();
|
writer.flush();
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
logger.error("Error writing to client: {}", ioe.getMessage());
|
logger.error("Error writing to client: {}", ioe.getMessage());
|
||||||
return HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
|
|
||||||
}
|
}
|
||||||
return HttpServletResponse.SC_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private int handleContainerList(HttpServletResponse response) {
|
private void handleContainerList(HttpServletResponse response) {
|
||||||
try (Writer writer = response.getWriter()) {
|
try (Writer writer = response.getWriter()) {
|
||||||
writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" +
|
writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" +
|
||||||
"<ListAllMyBucketsResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\">\r\n" +
|
"<ListAllMyBucketsResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\">\r\n" +
|
||||||
|
@ -247,9 +241,7 @@ final class S3ProxyHandler extends AbstractHandler {
|
||||||
writer.flush();
|
writer.flush();
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
logger.error("Error writing to client: {}", ioe.getMessage());
|
logger.error("Error writing to client: {}", ioe.getMessage());
|
||||||
return HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
|
|
||||||
}
|
}
|
||||||
return HttpServletResponse.SC_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleContainerExists(HttpServletResponse response,
|
private void handleContainerExists(HttpServletResponse response,
|
||||||
|
@ -438,7 +430,6 @@ final class S3ProxyHandler extends AbstractHandler {
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
logger.error("Error writing to client: {}",
|
logger.error("Error writing to client: {}",
|
||||||
ioe.getMessage());
|
ioe.getMessage());
|
||||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -496,7 +487,6 @@ final class S3ProxyHandler extends AbstractHandler {
|
||||||
os.flush();
|
os.flush();
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
logger.error("Error writing to client: {}", ioe.getMessage());
|
logger.error("Error writing to client: {}", ioe.getMessage());
|
||||||
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue