123456789101112131415161718192021222324252627282930313233 |
- 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('D:/project_svn/Ansjer/test/pk-APKAINI6BNPKV54NHH7Q.pem', 'rb') as key_file:
- private_key = serialization.load_pem_private_key(
- key_file.read(),
- password=None,
- backend=default_backend()
- )
- signer = private_key.signer(padding.PKCS1v15(), hashes.SHA1())
- signer.update(message)
- return signer.finalize()
- key_id = 'APKAINI6BNPKV54NHH7Q'
- url = 'http://d3om3d8c0l14oc.cloudfront.net/L59KVYDAEPHR1T6M111A_0/*'
- expire_date = datetime.datetime(2018, 9, 30)
- print(expire_date)
- cloudfront_signer = CloudFrontSigner(key_id, rsa_signer)
- # Create a signed url that will be valid until the specfic expiry date
- # provided using a canned policy.
- signed_url = cloudfront_signer.generate_presigned_url(
- url, date_less_than=expire_date)
- print(signed_url)
|