Downloading File Content as String From S3 in Python

In this tutorial, we will show you how to download file content as string from S3 using the AWS Boto3 library in Python.

Install Boto3 Python library using the following command:


pip install boto3

The following is an example code to download file content as string from an S3 bucket:


import boto3
from botocore.exceptions import ClientError
import io

ACCESS_SECRET = "your aws access secret"
ACCESS_KEY = "your aws access key"

s3_client = boto3.client('s3', region_name='us-east-1', aws_access_key_id=ACCESS_KEY,
                         aws_secret_access_key=ACCESS_SECRET)

bucket_name = "bucket-one"

file_name = "example.txt"

# file path in s3
key = "folder/"+file_name

# download file
try:
    str_content = ""
    bytes_buffer = io.BytesIO()
    
    s3_client.download_fileobj(
        Bucket=bucket_name, Key=key, Fileobj=bytes_buffer)
    
    byte_value = bytes_buffer.getvalue()
    str_content = byte_value.decode('utf-8')
    print("File content = ", str_content)
except ClientError as ex:
    print("Error: ", ex)