class_docstr: Manages downloading of products or parts of them.
  
  Intended for internal use, but may also be used directly if more fine-grained
  configuration or custom download logic is needed.
  
  Parameters
  ----------
  api : SentinelAPI
      A SentinelAPI instance.
  node_filter : callable, optional
      The callable is used to select which files of each product will be downloaded.
      If None (the default), the full products will be downloaded.
      See :mod:`sentinelsat.products` for sample node filters.
  verify_checksum : bool, default True
      If True, verify the downloaded files' integrity by checking its checksum.
      Throws InvalidChecksumError if the checksum does not match.
  fail_fast : bool, default False
      if True, all other downloads are cancelled when one of the downloads fails in :meth:`download_all()`.
  n_concurrent_dl : integer, optional
      Number of concurrent downloads.
      Defaults to the maximum allowed by :attr:`SentinelAPI.concurrent_dl_limit`.
  max_attempts : int, default 10
      Number of allowed retries before giving up downloading a product in :meth:`download_all()`.
  dl_retry_delay : float, default 10
      Number of seconds to wait between retrying of failed downloads.
  lta_retry_delay : float, default 60
      Number of seconds to wait between requests to the Long Term Archive.
  lta_timeout : float, optional
      Maximum number of seconds to wait for triggered products to come online.
      Defaults to no timeout.
docstr: Exposes requests response ready to stream product to e.g. S3.
  
  Parameters
  ----------
  id : string
      UUID of the product, e.g. 'a8dd0cfd-613e-45ce-868c-d79177b916ed'
  **kwargs
      Any additional parameters for :func:`requests.get()`
  
  Raises
  ------
  LTATriggered
      If the product has been archived and its retrieval was successfully triggered.
  LTAError
      If the product has been archived and its retrieval failed.
  
  Returns
  -------
  requests.Response:
      Opened response object
docstr_tok: ["Exposes","requests","response","ready","to","stream","product","to","e.g",".","S3",".","Parameters","--","--","--","--","--","id",":","string","UUID","of","the","product",",","e.g",".","'a8dd0cfd-613e-45ce-868c-d79177b916ed'","*","*","kwargs","Any","additional","parameters","for",":","func",":","`","requests.get","(",")","`","Raises","--","--","--","LTATriggered","If","the","product","has","been","archived","and","its","retrieval","was","successfully","triggered",".","LTAError","If","the","product","has","been","archived","and","its","retrieval","failed",".","Returns","--","--","--","-","requests.Response",":","Opened","response","object"]
code: def get_stream(self, id, **kwargs):
      """Exposes requests response ready to stream product to e.g. S3.
  
      Parameters
      ----------
      id : string
          UUID of the product, e.g. 'a8dd0cfd-613e-45ce-868c-d79177b916ed'
      **kwargs
          Any additional parameters for :func:`requests.get()`
  
      Raises
      ------
      LTATriggered
          If the product has been archived and its retrieval was successfully triggered.
      LTAError
          If the product has been archived and its retrieval failed.
  
      Returns
      -------
      requests.Response:
          Opened response object
      """
      if not self.api.is_online(id):
          self.trigger_offline_retrieval(id)
          raise LTATriggered(id)
      with self.api.dl_limit_semaphore:
          r = self.api.session.get(
              self.api._get_download_url(id), stream=True, **kwargs
          )
      self.api._check_scihub_response(r, test_json=False)
      return r
  
imports: import concurrent.futures
  import enum
  import itertools
  import shutil
  import threading
  import time
  import traceback
  from collections import namedtuple
  from concurrent.futures import ThreadPoolExecutor
  from contextlib import closing
  from pathlib import Path
  from typing import Any, Dict
  from xml.etree import ElementTree
  from sentinelsat.exceptions import InvalidChecksumError, LTAError, LTATriggered, SentinelAPIError, ServerError, UnauthorizedError
label_desc: Use image node_id 9 for calling the Downloader obj's underlying member method code with example usage: obj.get_stream(id) and returns: r