code: def store(cls, flow_name, path, is_text, encoding, handler, echo):
      sz = os.path.getsize(path)
      unit = ["B", "KB", "MB", "GB", "TB"]
      pos = 0
      while pos < len(unit) and sz >= 1024:
          sz = sz // 1024
          pos += 1
      if pos >= 3:
          extra = "(this may take a while)"
      else:
          extra = ""
      echo(
          "Including file %s of size %d%s %s"
          % (path, sz, unit[pos], extra)
      )
      try:
          input_file = io.open(path, mode="rb").read()
      except IOError:
          # If we get an error here, since we know that the file exists already,
          # it means that read failed which happens with Python 2.7 for large files
          raise MetaflowException(
              "Cannot read file at %s -- this is likely because it is too "
              "large to be properly handled by Python 2.7" % path
          )
      sha = sha1(input_file).hexdigest()
      path = os.path.join(
          handler.get_root_from_config(echo, True), flow_name, sha
      )
      buf = io.BytesIO()
  
      with gzip.GzipFile(fileobj=buf, mode="wb", compresslevel=3) as f:
          f.write(input_file)
      buf.seek(0)
  
      with handler() as client:
          url = client.put(path, buf.getvalue(), overwrite=False)
  
      return cls.encode_url(
          cls.file_type, url, is_text=is_text, encoding=encoding
      )
  
imports: from collections import namedtuple
  import gzip
  import io
  import json
  import os
  from hashlib import sha1
  from typing import Any, Dict, Optional
  from metaflow._vendor import click
  from .exception import MetaflowException
  from .parameters import DelayedEvaluationParameter, DeployTimeField, Parameter, ParameterContext
  from .util import get_username
  import functools
  from metaflow.plugins.datatools import Local, S3
  from metaflow.plugins.azure.includefile_support import Azure
  from metaflow.plugins.gcp.includefile_support import GS
label_desc: Use image node_id 2 for calling the UploaderV1 obj's underlying member method code with example usage: obj.store(cls, flow_name, path, is_text, encoding, handler, echo) and returns: cls