class_docstr: Adapter class that manages uploading data to and downloading data from AWS S3
docstr: Params:
      bytes_data (bytes)
docstr_tok: ["Params",":","bytes_data","(","bytes",")"]
code: def upload(self, bytes_data):
      """
      Params:
          bytes_data (bytes)
      """
      try:
          self._s3_client.Bucket(self._s3_bucket).put_object(
              Key=self._s3_key, Body=bytes_data
          )
          LOGGER.debug(
              "LookupTable (%s): Object successfully uploaded to S3",
              self._driver.id,
          )
      except ClientError as err:
          LOGGER.error(
              "LookupTable (%s): Failed to upload to S3. Error message: %s",
              self._driver.id,
              err.response["Error"]["Message"],
          )
          raise LookupTablesCommitError(
              "LookupTable S3 Driver Failed with Message: {}".format(
                  err.response["Error"]["Message"]
              )
          )
      except (ConnectTimeoutError, ReadTimeoutError):
          # Catching ConnectTimeoutError and ReadTimeoutError from botocore
          LOGGER.error(
              "LookupTable (%s): Reading from S3 timed out",
              self._driver.id,
          )
          raise LookupTablesCommitError(
              "LookupTable ({}): Reading from S3 timed out".format(
                  self._driver.id
              )
          )
  
imports: import json
  import sys
  import time
  import zlib
  import boto3
  from botocore.exceptions import ClientError, ConnectTimeoutError, ReadTimeoutError
  import streamalert.shared.helpers.boto
  from streamalert.shared.logger import get_logger
  from streamalert.shared.lookup_tables.cache import DriverCache
  from streamalert.shared.lookup_tables.drivers import PersistenceDriver
  from streamalert.shared.lookup_tables.errors import LookupTablesCommitError, LookupTablesInitializationError
label_desc: Use image node_id 2 for calling the S3Adapter obj's underlying member method code with example usage: obj.upload(bytes_data) without return types