docstr: Saves the given data into AWS S3
  
  Args:
      object_data (str): The raw object data to save
      region (str): AWS region
      bucket (str): AWS S3 bucket name
      key (str): AWS S3 key name
  
  Returns:
      bool: True on success
  
  Raises:
      ClientError
docstr_tok: ["Saves","the","given","data","into","AWS","S3","Args",":","object_data","(","str",")",":","The","raw","object","data","to","save","region","(","str",")",":","AWS","region","bucket","(","str",")",":","AWS","S3","bucket","name","key","(","str",")",":","AWS","S3","key","name","Returns",":","bool",":","True","on","success","Raises",":","ClientError"]
code: def put_object(object_data, bucket, key, region):
      """Saves the given data into AWS S3
  
      Args:
          object_data (str): The raw object data to save
          region (str): AWS region
          bucket (str): AWS S3 bucket name
          key (str): AWS S3 key name
  
      Returns:
          bool: True on success
  
      Raises:
          ClientError
      """
      try:
          client = boto3.client(
              "s3", config=default_config(region=region)
          )
          client.put_object(Body=object_data, Bucket=bucket, Key=key)
          return True
      except ClientError:
          LOGGER.error("An error occurred during S3 PutObject")
          raise
  
file_path: streamalert/streamalert/shared/helpers/aws_api_client.py
imports: import json
  import boto3
  from botocore.exceptions import ClientError
  from streamalert.shared.helpers.boto import default_config
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 3 for calling the AwsS3 obj's underlying member method code with example usage: obj.put_object(object_data, bucket, key, region) and returns: True