code: def _initiate_resumable_upload(self, stream, metadata, num_retries):
          
          chunk_size = _DEFAULT_CHUNKSIZE
          transport = self._http
          headers = _get_upload_headers(self._connection.USER_AGENT)
          upload_url = _RESUMABLE_URL_TEMPLATE.format(project=self.project)
          # TODO: modify ResumableUpload to take a retry.Retry object
          # that it can use for the initial RPC.
          upload = ResumableUpload(upload_url, chunk_size, headers=headers)
  
          if num_retries is not None:
              upload._retry_strategy = resumable_media.RetryStrategy(
                  max_retries=num_retries
              )
  
          upload.initiate(
              transport, stream, metadata, _GENERIC_CONTENT_TYPE, stream_final=False
          )
  
          return upload, transport
docs: Initiate a resumable upload.
  
          :type stream: IO[bytes]
          :param stream: A bytes IO object open for reading.
  
          :type metadata: dict
          :param metadata: The metadata associated with the upload.
  
          :type num_retries: int
          :param num_retries: Number of upload retries. (Deprecated: This
                              argument will be removed in a future release.)
  
          :rtype: tuple
          :returns:
              Pair of
  
              * The :class:`~google.resumable_media.requests.ResumableUpload`
                that was created
              * The ``transport`` used to initiate the upload.