Python Boto、amazon S3和Cloudfront发行版
我正在开发一个用户可以上传视频的应用程序。后端将它们发送到S3,为了播放,我将从S3生成一个自动过期的url,我必须将该url传递到Cloudfront,以便流式返回给用户 我在Python Boto、amazon S3和Cloudfront发行版,python,video-streaming,boto,amazon-cloudfront,Python,Video Streaming,Boto,Amazon Cloudfront,我正在开发一个用户可以上传视频的应用程序。后端将它们发送到S3,为了播放,我将从S3生成一个自动过期的url,我必须将该url传递到Cloudfront,以便流式返回给用户 我在Django中使用了boto,我有80%的代码一直在工作,直到我必须在前面链接的部分。私有的s3url已经生成,并且工作正常 s3_conn = S3Connection( aws_access_key_id = settings.CONFIG.AWS_ACCESS_KEY_ID, aws_secret_
Django
中使用了boto
,我有80%的代码一直在工作,直到我必须在前面链接的部分。私有的s3url已经生成,并且工作正常
s3_conn = S3Connection(
aws_access_key_id = settings.CONFIG.AWS_ACCESS_KEY_ID,
aws_secret_access_key = settings.CONFIG.AWS_SECRET_ACCESS_KEY,
is_secure = True
)
video_url = s3_conn.generate_url(
60,
'GET',
bucket = settings.CONFIG.AWS_VIDEO_STORAGE_BUCKET_NAME,
key = self.premium_video_url,
force_http = True
)
origin = cloudfront.origin.S3Origin( "{}.s3.amazonaws.com".format( settings.CONFIG.AWS_VIDEO_STORAGE_BUCKET_NAME ) )
cloudf = boto.connect_cloudfront( settings.CONFIG.AWS_ACCESS_KEY_ID, settings.CONFIG.AWS_SECRET_ACCESS_KEY )
stream_distributions = cloudf.get_all_streaming_distributions()
if not len(stream_distributions):
distro = cloudf.create_streaming_distribution( origin = origin, enabled = True, comment = 'Video streaming distribution' )
else:
distro = stream_distributions[0]
return distro.create_signed_url(
video_url,
expire_time = int( time.time() + 3000 ),
private_key_file = self.premium_video_url
)
有问题的线路:
distro=stream\u distributions[0]
返回一个StreamingDistributionSummary
而不是实际的分发对象或任何需要的内容:“StreamingDistributionSummary”对象没有属性“create\u signed\u url”
此外,返回代码可能遗漏了一些内容
我在寻找一个合适的示例时遇到了各种各样的问题,因为
boto
最近似乎发生了很多变化,而且所有现有的示例都不再有效。在StreamingDistributionSummary
对象上应该有一个名为get\u distribution
的方法,该方法将返回实际的StreamingDistribution
object。是的,但它需要一个我不知道从何处获取的id。不,这就是我所指的id()。它不需要任何参数。昨天就可以运行了,但您的答案是正确的:distro=stream\u distributions[0]。get\u distribution()