内容交付网络(CDN),如AWS Cloudfront,策略,优化使用



这是典型的"CDN"策略吗?这是为了鼓励客户只托管这样的内容吗?这些内容将存在很长一段时间,并且可能会有一百万次下载?

我开始研究AWS Cloudfront,了解它承载视频内容的流RTMP媒体(又称类似Flash服务器的行为)的能力。也就是说,我不太关心"贴近客户分销"的好处。然而,让我惊讶的是,AWS Cloudfront定价页面上的一条条款,上面写着前1000次"取消"(每月)是免费的。我将"取消"解释为删除我不再希望通过CDN提供的内容。是这样吗?

我的要求是能够提供不与公众或大量观众共享的媒体内容(流媒体音频、流媒体视频)。这就像这些文件中的每一个文件的生命周期(或相关性)只有几天(最多一周左右),并且每个文件只能由少数人/消费者查看(例如,平均3人查看1个文件,最多10人查看)。此外,内容的隐私需要维护,因此意外共享的媒体URL不应允许未经授权的人访问它。在这种情况下,认为CDN是一种过度使用,而不是正确的解决方案是正确的吗?

我被AWS CF吸引,因为它的RTMP流媒体功能价格低廉(至少入门价较低)。我还可以考虑其他什么选择。对我来说,高可用性和往返时间是次要的。。。主要关注的是成本,即它需要尽可能低。关于"有多低"的问题,我认为这对发展中经济体来说已经足够低了,比如亚洲、南美和非洲。寻求关于正确方法的建议。

我在AWS网站上找到了答案

默认情况下,通过AmazonCloudFront交付的文件可供互联网上的任何人公开阅读。然而,如果您需要更好地控制谁可以下载或流式传输您的文件,您可以使用Amazon CloudFront的私人内容功能。启用此选项后,Amazon CloudFront将仅在您表示可以通过安全地签署请求来交付文件或流媒体时才交付。使用私人内容功能不收取额外费用。

AmazonCloudFront使用您在文件上设置的过期期限(通过缓存控制头)来确定是否需要检查文件更新版本的来源。如果您预计文件会频繁更改,那么最佳做法是使用对象版本控制来管理这些更改。要实现对象版本控制,请在原始服务器中为文件的每个版本创建一个唯一的文件名,并使用与网页或应用程序中的正确版本相对应的文件名。使用此技术,AmazonCloudFront可以缓存您想要的对象版本,而无需等待对象过期后才能提供新版本。

您还可以通过调用Invalidation API随时从所有Amazon CloudFront边缘位置删除文件的副本。该功能将从每个Amazon CloudFront边缘位置删除该文件,而不管您在原始服务器上为该文件设置的到期期限如何。如果需要同时删除多个文件,可以在XML文档中发送一个文件列表(最多1000个)。无效功能设计用于意外情况,例如,纠正您上传的视频中的编码错误或网站css文件的意外更新。但是,如果您事先知道文件会频繁更改,建议您使用对象版本控制来管理文件的更新。此技术使您能够更好地控制更改何时生效,还可以避免因对象无效而产生的潜在费用。

听起来过期URL非常适合您。每次你想让用户观看视频流时,你都会生成一个使用寿命有限(比如5分钟)的签名URL。

5分钟后,URL将不再工作。这是一个很好的方法来控制对媒体的访问,而不必不断地从分发中添加和删除文件。

您需要在您的主站点上使用一些代码来生成URL并设置所有内容。下面是一个使用python设置带有签名URL的cloudfront流的示例:

使用Python 开始使用安全的AWS CloudFront流媒体

享受吧!

最新更新