code: def __init__(
      self, size=None, filename=None, url=None, headers=None, key=None
  ):
      super(S3DownloaderSession, self).__init__(
          size=size, filename=filename, headers=headers, url=url
      )
      self.key = key
  
imports: import re
  from urllib.parse import urlsplit, unquote
  from ..utils import auto_repr, ensure_dict_from_str
  from ..dochelpers import borrowkwargs
  from ..support.network import get_url_straight_filename, iso8601_to_epoch, rfc2822_to_epoch
  from .base import Authenticator
  from .base import BaseDownloader, DownloaderSession
  from ..support.exceptions import AccessPermissionExpiredError, CapturedException, TargetFileAbsent
  from ..support.s3 import Key, OrdinaryCallingFormat, S3ResponseError, boto, get_bucket, try_multiple_dec_s3
  from ..support.status import FileStatus
  import logging
  from logging import getLogger
label_desc: Use image node_id 1 to create a new S3DownloaderSession object from inherited base classes: DownloaderSession with example: obj = S3DownloaderSession(size, filename, url, headers, key)