code: public static int putObject(
            final String path,
            final JossAccount account,
            final InputStream inputStream,
            final SwiftConnectionManager scm,
            final Map<String, String> metadata,
            final long size,
            final String type) throws IOException {
      int resp = httpPUT(path, inputStream, account, scm, metadata, size, type);
      if (resp >= 400) {
        LOG.warn("Re-authentication attempt for GET {}", path);
        account.authenticate();
        resp = httpPUT(path.toString(),inputStream, account, scm, metadata, size, type);
      }
      return resp;
    }
docs: PUT object
  
  @param path path to the object
  @param account Joss Account wrapper object
  @param inputStream InputStream
  @param scm Swift Connection manager
  @param metadata custom metadata
  @param size the object size
  @param type the content type
  @return HTTP Response code
  @throws IOException if network errors