Last active
August 30, 2019 03:00
-
-
Save dustindorroh/38a6406b7f41852d5be555c07aa528db to your computer and use it in GitHub Desktop.
Create a presigned url for an s3 object
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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