code: private static Property[] getFileDatastreamHeaders(String canonicalPath, long lastModified) {
          Property[] result = new Property[3];
          String eTag =
              MD5Utility.getBase16Hash(canonicalPath.concat(Long.toString(lastModified)));
          result[0] = new Property(HttpHeaders.ACCEPT_RANGES,"bytes");
          result[1] = new Property(HttpHeaders.ETAG, eTag);
          result[2] = new Property(HttpHeaders.LAST_MODIFIED,
                  DateUtil.formatDate(new Date(lastModified)));
          return result;
      }
docs: Content-Length is determined elsewhere
  Content-Type is determined elsewhere
  Last-Modified
  ETag
  @param String canonicalPath: the canonical path to a file system resource
  @param lastModified lastModified: the date of last modification
  @return