Python:如何使用自定义策略云端生成签名 URL

Python: how to generate signed URL with custom policy cloudfront

我有一些代码可以生成签名 URL

expire_time = in_an_hour()
conn = CloudFrontConnection(access_key_id, access_key)

##enter the id or domain name to select a distribution
distribution = Distribution(connection=conn, config=None, domain_name=domain, id=dist_id, last_modified_time=None, status='')
signed_url = distribution.create_signed_url(url=url_tosign, keypair_id=keypair,expire_time=expire_time,private_key_file="/path/to/priv.pem")
return signed_url

我想包含一个考虑用户 IP 的自定义策略。我写了一个方法来生成工作正常的 json。我尝试将 policy=get_policy(url_tosign, ip) 添加到 distribution.create_signed_url 调用中,但我只是收到一条错误消息,指出这是一个意外的关键字参数。我如何修改此代码以生成带有源 IP 限制的已签名 URL?

James Dean 的 link 找到了解决方案。我们可以使用一个 ip_address 参数。

更新的代码行

signed_url = distribution.create_signed_url(url=url_tosign, keypair_id=keypair,expire_time=expire_time,private_key_file="/path/to/priv.pem", ip_address= "x.x.x.x/32") # CIDR notation optional. x.x.x.x also works as a /32