#150: 使用过期 S3 链接保护视频内容

在本期视频中,我们将探讨如何将文件托管在 Amazon S3(简单存储服务)上,以便我们可以链接并使用这些资产,但不会将它们完全公开。只允许登录的订阅用户访问 The Lodge 中的内容。

在我录制本期视频时,计划是使用 HTML5 <video> 并在其中包含指向亚马逊托管(和保护)视频的 <source> 元素。从那以后,我改用 Vimeo 来显示视频(通过 Vimeo PRO 仅对本网站保护)。但是,这个想法仍然具有现实意义,特别是因为我们仍然通过 S3 提供直接下载。

为什么选择 S3?将文件托管在我的 Web 服务器上进行下载完全不切实际。对于普通主机而言,带宽消耗过大,而且我不想让负责显示网站的同一台服务器忙于处理包含超长连接的庞大文件。S3 非常适合此类情况。

我们通过以下步骤实现这些“安全”链接:

  1. 将文件上传到 S3(通过 Mac 应用程序 Transmit,它提供了简便的 S3 支持)
  2. 在 Lodge 视频页面上创建一个自定义字段,包含文件名
  3. 从文件名 生成一个过期链接
  4. 在模板中使用所需的链接

最终,我们把链接生成器做成了一个单独的文件,这样我们就可以把它包含在任何需要用到它的页面中。用 PHP 而不是 JavaScript 还蛮好的,这样我们生成这些链接所需的密钥从本质上来说是受保护的。