docs: @Override
    public String getVersion(URI uri) throws IOException
    {
      try {
        final S3Coords coords = new S3Coords(checkURI(uri));
        final S3ObjectSummary objectSummary = S3Utils.getSingleObjectSummary(s3Client, coords.bucket, coords.path);
        return StringUtils.format("%d", objectSummary.getLastModified().getTime());
      }
      catch (AmazonServiceException e) {
        if (S3Utils.isServiceExceptionRecoverable(e)) {
          // The recoverable logic is always true for IOException, so we want to only pass IOException if it is recoverable
          throw new IOE(e, "Could not fetch last modified timestamp from URI [%s]", uri);
        } else {
          throw new RE(e, "Error fetching last modified timestamp from URI [%s]", uri);
        }
      }
    }