docs: public String signRequest(String urlString, byte[] body, String contentType) {
          URI uri = URI.create(urlString);
          String path = uri.getRawPath();
          String query = uri.getRawQuery();
  
          Mac mac = createMac();
  
          mac.update(StringUtils.utf8Bytes(path));
  
          if (query != null && query.length() != 0) {
              mac.update((byte) ('?'));
              mac.update(StringUtils.utf8Bytes(query));
          }
          mac.update((byte) '\n');
          if (body != null && Client.FormMime.equalsIgnoreCase(contentType)) {
              mac.update(body);
          }
  
          String digest = UrlSafeBase64.encodeToString(mac.doFinal());
  
          return this.accessKey + ":" + digest;
      }