diff options
author | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
---|---|---|
committer | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
commit | 4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch) | |
tree | ee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/boto3/examples/cloudfront.rst | |
parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
download | gn-ai-master.tar.gz |
Diffstat (limited to '.venv/lib/python3.12/site-packages/boto3/examples/cloudfront.rst')
-rw-r--r-- | .venv/lib/python3.12/site-packages/boto3/examples/cloudfront.rst | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/boto3/examples/cloudfront.rst b/.venv/lib/python3.12/site-packages/boto3/examples/cloudfront.rst new file mode 100644 index 00000000..ddec198c --- /dev/null +++ b/.venv/lib/python3.12/site-packages/boto3/examples/cloudfront.rst @@ -0,0 +1,35 @@ +Generate a signed URL for Amazon CloudFront +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following example shows how to generate a signed URL for Amazon CloudFront. +Note that you will need the ``cryptography`` `library <https://cryptography.io/en/latest/>`__ to follow this example:: + + import datetime + + from cryptography.hazmat.backends import default_backend + from cryptography.hazmat.primitives import hashes + from cryptography.hazmat.primitives import serialization + from cryptography.hazmat.primitives.asymmetric import padding + from botocore.signers import CloudFrontSigner + + + def rsa_signer(message): + with open('path/to/key.pem', 'rb') as key_file: + private_key = serialization.load_pem_private_key( + key_file.read(), + password=None, + backend=default_backend() + ) + return private_key.sign(message, padding.PKCS1v15(), hashes.SHA1()) + + key_id = 'AKIAIOSFODNN7EXAMPLE' + url = 'http://d2949o5mkkp72v.cloudfront.net/hello.txt' + expire_date = datetime.datetime(2017, 1, 1) + + cloudfront_signer = CloudFrontSigner(key_id, rsa_signer) + + # Create a signed url that will be valid until the specific expiry date + # provided using a canned policy. + signed_url = cloudfront_signer.generate_presigned_url( + url, date_less_than=expire_date) + print(signed_url) |