private HttpPostRequestEncoder createEncoder(HttpRequest request, ByteBuffer blobContent)
      throws HttpPostRequestEncoder.ErrorDataEncoderException, IOException {
    HttpDataFactory httpDataFactory = new DefaultHttpDataFactory(false);
    HttpPostRequestEncoder encoder = new HttpPostRequestEncoder(httpDataFactory, request, true);
    FileUpload fileUpload = new MemoryFileUpload(RestUtils.MultipartPost.BLOB_PART, RestUtils.MultipartPost.BLOB_PART,
        "application/octet-stream", "", Charset.forName("UTF-8"), blobContent.remaining());
    fileUpload.setContent(Unpooled.wrappedBuffer(blobContent));
    encoder.addBodyHttpData(fileUpload);
    return encoder;
  }
Creates a {@link HttpPostRequestEncoder} that encodes the given {@code request} and {@code blobContent}.
@param request the {@link HttpRequest} containing headers and other metadata about the request.
@param blobContent the {@link ByteBuffer} that represents the content of the blob.
@return a {@link HttpPostRequestEncoder} that can encode the {@code request} and {@code blobContent}.
@throws HttpPostRequestEncoder.ErrorDataEncoderException
@throws IOException
ambry-rest/src/test/java/com/github/ambry/rest/NettyMessageProcessorTest.java