@Override
  public Object create(Map<String, Object> value) {
    String mimeType = (String) value.get("mime-type");
    String encoding = (String) value.get("encoding");
    // long length = -1;
    // Long lengthVal = (Long)value.get("length");
    // if (lengthVal != null) {
    // length = lengthVal.longValue();
    // }
    String filename = (String) value.get("name");
    String digest = (String) value.get("digest");
    Object data = value.get("data");
    StreamSource ss;
    if (data instanceof String) {
      ss = new StringSource((String) data);
    } else if (data instanceof InputStream) {
      ss = new InputStreamSource((InputStream) data);
    } else if (data instanceof byte[]) {
      ss = new ByteArraySource((byte[]) data);
    } else {
      ss = new ByteArraySource(new byte[0]);
    }

    Blob blob = new StreamingBlob(ss);
    blob.setMimeType(mimeType);
    blob.setEncoding(encoding);
    blob.setFilename(filename);
    blob.setDigest(digest);
    return blob;
  }