code: public Download resumeDownload(PersistableDownload persistableDownload) {
          assertParameterNotNull(persistableDownload,
                  "PausedDownload is mandatory to resume a download.");
          GetObjectRequest request = new GetObjectRequest(
                  persistableDownload.getBucketName(), persistableDownload.getKey(),
                  persistableDownload.getVersionId());
          if (persistableDownload.getRange() != null
                  && persistableDownload.getRange().length == 2) {
              long[] range = persistableDownload.getRange();
              request.setRange(range[0], range[1]);
          }
          request.setRequesterPays(persistableDownload.isRequesterPays());
          request.setResponseHeaders(persistableDownload.getResponseHeaders());
  
          return doDownload(request, new File(persistableDownload.getFile()), null, null,
                  APPEND_MODE, 0,
                  persistableDownload);
      }
docs: Resumes an download operation. This download operation uses the same
  configuration as the original download. Any data already fetched will be
  skipped, and only the remaining data is retrieved from Amazon S3.
  
  @param persistableDownload
  the download to resume.
  @return A new <code>Download</code> object to use to check the state of
  the download, listen for progress notifications, and otherwise
  manage the download.
  
  @throws AmazonClientException
  If any errors are encountered in the client while making the
  request or handling the response.
  @throws AmazonServiceException
  If any errors occurred in Amazon S3 while processing the
  request.