Boto,amazon S3和Cloudfront发行版

时间:2015-02-24 21:03:36

标签: python video-streaming boto amazon-cloudfront

我正在开发一个用户可以上传视频的应用。后端将它们发送到S3并进行回放我从S3生成一个自动过期URL,我必须将其传递给Cloudfront以便流回用户。

我在boto中使用Django,我有80%的代码工作,直到我必须链接cloudfront的部分。私有S3网址生成并且运行正常。

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_distributions[0]会返回StreamingDistributionSummary而不是真正的分发对象或其他任何内容:'StreamingDistributionSummary' object has no attribute 'create_signed_url'

此外,返回代码可能会遗漏某些内容。

我有各种各样的问题找到一个不错的例子,因为boto最近似乎已经发生了很大变化,所有现有的例子都不再有效。

0 个答案:

没有答案