I am saving a key to a bucket with:
key = bucket.new_key(fileName)
key.set_contents_from_string(base64.b64decode(data))
key.set_metadata(\'Content-Ty
import boto
from boto.s3.connection import S3Connection
conn = S3Connection('AWS_ACCESS_KEY', 'AWS_SECRET_KEY')
secure_https_url = 'https://{host}/{bucket}/{key}'.format(
host=conn.server_name(),
bucket='name-of-bucket',
key='name_of_key')
http_url = 'http://{bucket}.{host}/{key}'.format(
host=conn.server_name(),
bucket='name-of-bucket',
key='name_of_key')
That's how I did it in boto 2.23.0 for a public URL. I couldn't get the expires_in=None argument to work.
Note that for HTTPS you can't use a subdomain.