@Override public long getSize() { return payload.getSize(); }
@TransactionalStoreBlob public Asset ingestAsset(Payload body) throws IOException, PGPException { StorageFacet storageFacet = facet(StorageFacet.class); try (TempBlob tempBlob = storageFacet.createTempBlob(body, FacetHelper.hashAlgorithms)) { ControlFile control = AptPackageParser.parsePackage(tempBlob); if (control == null) { throw new IllegalOperationException("Invalid Debian package supplied"); } return ingestAsset(control, tempBlob, body.getSize(), body.getContentType()); } }
/** * Mutate the response into one that returns part of the payload. */ private Response partialResponse(final Response response, final Payload payload, final Range<Long> requestedRange) { Response.Builder builder = new Response.Builder() .copy(response) .status(Status.success(HttpStatus.PARTIAL_CONTENT)); Payload partialPayload = new PartialPayload(payload, requestedRange); builder.payload(partialPayload); // ResponseSender takes care of Content-Length header, via payload.size builder.header(HttpHeaders.CONTENT_RANGE, "bytes " + requestedRange.lowerEndpoint() + "-" + requestedRange.upperEndpoint() + "/" + payload.getSize()); return builder.build(); }