/** * parses the http response headers to create a new * {@link org.jclouds.aws.s3.domain.internal.MutableObjectMetadata} object. */ public MutableObjectMetadata apply(HttpResponse from) { BlobMetadata base = blobMetadataParser.apply(from); MutableObjectMetadata to = blobToObjectMetadata.apply(base); addETagTo(from, to); if (to.getContentMetadata().getContentMD5() == null && to.getETag() != null) { byte[] md5 = CryptoStreams.hex(to.getETag().replaceAll("\"", "")); // it is possible others will look at the http payload directly from.getPayload().getContentMetadata().setContentMD5(md5); to.getContentMetadata().setContentMD5(md5); } to.setCacheControl(from.getFirstHeaderOrNull(HttpHeaders.CACHE_CONTROL)); return to; }