use of org.apache.jackrabbit.oak.remote.RemoteBinaryId in project jackrabbit-oak by apache.
the class HeadBinaryHandler method handle.
@Override
public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
RemoteSession session = (RemoteSession) request.getAttribute("session");
if (session == null) {
sendInternalServerError(response, "session not found");
return;
}
String providedBinaryId = readBinaryId(request);
if (providedBinaryId == null) {
sendBadRequest(response, "unable to read the provided binary ID");
return;
}
RemoteBinaryId binaryId = session.readBinaryId(providedBinaryId);
if (binaryId == null) {
sendNotFound(response, "binary ID not found");
return;
}
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader("Accept-Ranges", "bytes");
}
use of org.apache.jackrabbit.oak.remote.RemoteBinaryId in project jackrabbit-oak by apache.
the class PostBinaryHandler method handle.
@Override
public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException {
RemoteSession session = (RemoteSession) request.getAttribute("session");
if (session == null) {
sendInternalServerError(response, "session not found");
return;
}
RemoteBinaryId binaryId = session.writeBinary(request.getInputStream());
response.setStatus(HttpServletResponse.SC_CREATED);
response.setContentType("application/json");
ServletOutputStream stream = response.getOutputStream();
JsonGenerator generator = new JsonFactory().createJsonGenerator(stream, JsonEncoding.UTF8);
generator.writeStartObject();
generator.writeStringField("binaryId", binaryId.asString());
generator.writeEndObject();
generator.flush();
stream.close();
}
use of org.apache.jackrabbit.oak.remote.RemoteBinaryId in project jackrabbit-oak by apache.
the class GetBinaryHandler method handle.
@Override
public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
RemoteSession session = (RemoteSession) request.getAttribute("session");
if (session == null) {
sendInternalServerError(response, "session not found");
return;
}
String providedBinaryId = readBinaryId(request);
if (providedBinaryId == null) {
sendBadRequest(response, "unable to read the provided binary ID");
return;
}
RemoteBinaryId binaryId = session.readBinaryId(providedBinaryId);
if (binaryId == null) {
sendNotFound(response, "binary ID not found");
return;
}
List<RemoteBinaryFilters> contentRanges = parseRequestRanges(request, session, binaryId);
if (contentRanges == null) {
handleFile(response, session, binaryId);
} else if (contentRanges.size() == 1) {
handleSingleRange(response, session, binaryId, contentRanges.get(0));
} else {
handleMultipleRanges(response, session, binaryId, contentRanges);
}
}
Aggregations