@Override
    public void progressChanged(ProgressEvent e) {
      if (null == upload) return;

      TransferProgress xProgress = upload.getProgress();

      System.out.print(
          "\r  "
              + String.format("%.2f", xProgress.getPercentTransfered())
              + "% "
              + asNumber(xProgress.getBytesTransfered())
              + "/"
              + asNumber(contentLen)
              + BLANK_LINE);

      switch (e.getEventCode()) {
        case ProgressEvent.COMPLETED_EVENT_CODE:
          {
            System.out.println("Done");
            break;
          }
        case ProgressEvent.FAILED_EVENT_CODE:
          {
            try {
              AmazonClientException exc = upload.waitForException();

              System.err.println("Unable to upload file: " + exc.getMessage());
            } catch (InterruptedException ignored) {
            }
            break;
          }
      }
    }