import boto3

# Replace with your actual role ARN, bucket name, and file paths
ROLE_ARN = "arn:aws:iam::334835636290:role/quiklrn_lambda"
BUCKET_NAME = "quiklrnexam"
LOCAL_FILE_PATH = "output.csv"
S3_OBJECT_KEY = "output.csv"

try:
    # Assume the IAM role
    sts_client = boto3.client('sts')
    assumed_role_object = sts_client.assume_role(
        RoleArn=ROLE_ARN,
        RoleSessionName="S3UploadSession"
    )

    credentials = assumed_role_object['Credentials']

    # Create S3 client using assumed role credentials
    s3_client = boto3.client(
        's3',
        aws_access_key_id=credentials['AccessKeyId'],
        aws_secret_access_key=credentials['SecretAccessKey'],
        aws_session_token=credentials['SessionToken']
    )

    # Upload the file
    s3_client.upload_file(LOCAL_FILE_PATH, BUCKET_NAME, S3_OBJECT_KEY)
    print(f"File '{LOCAL_FILE_PATH}' uploaded successfully to S3 bucket '{BUCKET_NAME}' as '{S3_OBJECT_KEY}'.")

except Exception as e:
    print(f"Error uploading file: {e}")