kopia lustrzana https://github.com/gaul/s3proxy
Emit NoSuchKey when reading non-existent object
Found with Ceph s3-tests. References #5.pull/16/head
rodzic
16dfa70aec
commit
b603abefc8
|
@ -129,10 +129,7 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
return;
|
||||
} else {
|
||||
String[] path = uri.split("/", 3);
|
||||
errorCode = handleGetBlob(request, response, path[1], path[2]);
|
||||
if (errorCode != HttpServletResponse.SC_OK) {
|
||||
response.sendError(errorCode);
|
||||
}
|
||||
handleGetBlob(request, response, path[1], path[2]);
|
||||
baseRequest.setHandled(true);
|
||||
return;
|
||||
}
|
||||
|
@ -443,9 +440,9 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
addMetadataToResponse(response, metadata);
|
||||
}
|
||||
|
||||
private int handleGetBlob(HttpServletRequest request,
|
||||
private void handleGetBlob(HttpServletRequest request,
|
||||
HttpServletResponse response, String containerName,
|
||||
String blobName) {
|
||||
String blobName) throws IOException {
|
||||
GetOptions options = new GetOptions();
|
||||
String range = request.getHeader(HttpHeaders.RANGE);
|
||||
if (range != null && range.startsWith("bytes=")
|
||||
|
@ -459,7 +456,10 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
|
||||
Blob blob = blobStore.getBlob(containerName, blobName, options);
|
||||
if (blob == null) {
|
||||
return HttpServletResponse.SC_NOT_FOUND;
|
||||
sendSimpleErrorResponse(response,
|
||||
HttpServletResponse.SC_NOT_FOUND, "NoSuchKey",
|
||||
"Not Found", Optional.<String>absent());
|
||||
return;
|
||||
}
|
||||
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
|
@ -470,10 +470,9 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
os.flush();
|
||||
} catch (IOException ioe) {
|
||||
logger.error("Error writing to client: {}", ioe.getMessage());
|
||||
return HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
|
||||
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
return HttpServletResponse.SC_OK;
|
||||
}
|
||||
|
||||
private void handlePutBlob(HttpServletRequest request,
|
||||
|
|
Ładowanie…
Reference in New Issue