@Override public void process(AssetEncounter encounter) throws IOException { Resource in = encounter.getResource(); int length = in.getContentLength(); if (length < 0) { length = 0; InputStream stream = in.openStream(); while (stream.read() != -1) length++; stream.close(); } byte[] data = String.valueOf(length).getBytes(); encounter.replaceWith(new MemoryResource(null, null, data)); }
private byte[] digest(Resource resource) throws IOException, NoSuchAlgorithmException, DigestException { InputStream stream = resource.openStream(); try { MessageDigest digest = MessageDigest.getInstance("SHA-1"); byte[] buf = new byte[1024]; int len; while ((len = stream.read(buf)) != -1) { digest.update(buf, 0, len); } return digest.digest(); } finally { stream.close(); } }