code: @Override
      public void abort() {
          super.abort();
  
          if (httpRequest != null) {
              httpRequest.abort();
          }
  
          // The default abort() implementation calls abort on the wrapped stream
          // if it's an SdkFilterInputStream; otherwise we'll need to close the
          // stream.
          if (!(in instanceof SdkFilterInputStream)) {
              IOUtils.closeQuietly(in, null);
          }
      }
docs: {@inheritDoc}
  
  Aborts the underlying http request without reading any more data and
  closes the stream.
  <p>
  By default Apache {@link HttpClient} tries to reuse http connections by
  reading to the end of an attached input stream on
  {@link InputStream#close()}. This is efficient from a socket pool
  management perspective, but for objects with large payloads can incur
  significant overhead while bytes are read from s3 and discarded. It's up
  to clients to decide when to take the performance hit implicit in not
  reusing an http connection in order to not read unnecessary information
  from S3.
  
  @see EofSensorInputStream