Skip to content

Instantly share code, notes, and snippets.

@dustindorroh
Last active August 30, 2019 03:00
Show Gist options
  • Save dustindorroh/38a6406b7f41852d5be555c07aa528db to your computer and use it in GitHub Desktop.
Save dustindorroh/38a6406b7f41852d5be555c07aa528db to your computer and use it in GitHub Desktop.
Create a presigned url for an s3 object
import logging
import boto3
from botocore.exceptions import ClientError
def create_presigned_url(bucket_name, object_name, expiration=3600):
"""Generate a presigned URL to share an S3 object
:param bucket_name: string
:param object_name: string
:param expiration: Time in seconds for the presigned URL to remain valid
:return: Presigned URL as string. If error, returns None.
"""
# Generate a presigned URL for the S3 object
s3_client = boto3.client('s3')
try:
response = s3_client.generate_presigned_url('get_object',
Params={'Bucket': bucket_name,
'Key': object_name},
ExpiresIn=expiration)
except ClientError as e:
logging.error(e)
return None
# The response contains the presigned URL
return response
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment