2

我正在尝试创建一个私人播客提要。我服务的每个用户都有一个帐户,根据他们支付的费用,他们将收到不同的内容。有些内容很敏感,因此安全性相当重要;如果任何随附的音频文件在互联网上传播,这对我们的业务来说可能是灾难性的。

我目前正在对服务进行原型设计,MP3 存储在 S3 上,并且它们不安全。是时候保护他们了。根据我的研究,我了解到,事实上,我可以保护 S3 上具有访问到期期限的文件。但是,因为我有很多用户,所以用我的“全局”密钥签署请求并过期可能不是一个好主意,因为

  1. 如果我需要撤销访问权限,我需要为所有人执行此操作
  2. 由于我不知道他们的 podcatcher 何时会请求该文件,因此我不知道何时设置到期时间。有时,podcatcher 会下载提要 XML,但只是稍后才会获取 MP3 文件,因此 URL 可能会在客户端有机会获取它们之前过期(我正在考虑 iTunes,但可能还有其他)。

我看到它的方式,我有两个选择,我不确定是否可行:

编辑我想,另一种可能的方式是扮演我自己的安全角色,如果用户愿意的话,只需重定向到 S3 上的 MP3 即可。这似乎是最明智的。

  1. 我可以在 Amazon 上为我的所有用户创建用户帐户,并将它们链接到我数据库中的 Amazon 令牌。每个人的 MP3 网址都使用他们的秘密令牌进行签名,并且从现在起很长时间内到期。我不喜欢将他们的令牌存储在我的数据库中的想法,而且我不确定 Amazon ACL 是否是为这种情况而设计的。这也意味着如果您知道 URL,仍然可以共享文件。
  2. 我可以通过我的服务器代理每个请求。这意味着我只有一个亚马逊账户,并且我可以使用自己的安全系统。但是通过我的服务器代理每个 MP3 下载听起来很慢、浪费和昂贵。

有关执行此操作的最佳方法的任何想法。

PS我没有嫁给S3。可以考虑其他解决方案。我在 Heroku 上使用 Ruby,以防万一。

4

1 回答 1

0

我将使用其他地方建议的重定向解决方案。这似乎给了我最大的灵活性和非常低的开销。您绝对不应该的是在您的提要中直接使用指向 S3 的链接,因为它们可能在客户端下载之前过期。

于 2012-09-12T12:35:22.407 回答