谷歌云存储与谷歌云 CDN

Sup*_*Eye 1 django google-app-engine google-cloud-storage google-cloud-platform google-cloud-cdn

我有几个视频内容,我通过我的 Django Google App Engine 应用程序通过我的 Google Cloud Storage 共享,这些内容带有与过期时间相关联的签名 url 机制。

def get_signed_url(self, entity):
    blob = bucket.get_blob(entity.url)
    logging.info(entity.url)
    expiration_time = timezone.now() + timedelta(minutes=120)
    signed_url = blob.generate_signed_url(expiration_time)
    logging.info(signed_url)

    return signed_url
Run Code Online (Sandbox Code Playgroud)

尽管在 [here][1] 中解释了 GCS 和 Google Cloud CDN 的可能使用关系,但这是否适用于通过 Google Cloud Storage 流式传输视频内容(MP4 或带有 MP4 的 MPEG-DASH),因为它被提到具有隐式 CDN 本身。

如果使用 Google CDN 是广播在线视频内容的更明智的方式,那么实现这一目标的最佳策略是什么,我如何在当前使用 Google Cloud Storage 实施的基础上使用 Google Cloud CDN?

eli*_*rar 6

尽管 Google Cloud Storage 利用了 CDN 基础架构的“部分”,但它只是一个便利层,无法控制缓存键、失效,并且需要公共存储桶(与签名 URL 不一致)或每个对象的 Cache-Control 元数据要设置。

从存储桶中输出大量数据(例如 HLS/DASH 视频)的成本也更高一些——对于北美来说,根据数量的不同,它的范围在 0.12 美元到 0.08 美元之间。北美出站流量的 Cloud CDN 范围从 0.08 美元到 0.02 美元(在 1 PB 之后)。

您还应该查看Cloud CDN中的签名 URL 和签名 Cookie支持,它允许您保护您的视频片段免受基于每个用户的未经授权的访问 - 类似于 GCS 签名 URL。

TL;DR: GCS 及其缓存模式非常方便,适用于小流量,但如果您打算甚至提供几百 GB(更不用说更多),请在铲斗将为您提供更大的灵活性并降低成本。

(我是 Cloud CDN 的 PM,如果有帮助的话!)