How to upload a file to S3 and make it public using boto3?

I am able to upload an image file using:

    s3 = session.resource('s3')
    bucket = s3.Bucket(S3_BUCKET)
    bucket.upload_file(file, key)

However, I want to make the file public too. I tried looking up for some functions to set ACL for the file but seems like boto3 have changes their API and removed some functions. Is there a way to do it in the latest release of boto3?

I was able to do it using objectAcl API:

    s3 = boto3.resource('s3')
    object_acl = s3.ObjectAcl('bucket_name','object_key')
    response = object_acl.put(ACL='public-read')

For details: http://boto3.readthedocs.io/en/latest/reference/services/s3.html#objectacl

From: stackoverflow.com/q/41904806