首页 > 解决方案 > 出售对存储在 S3 存储桶中的 Web 应用程序的访问权限

问题描述

我有几个 Rise 360​​ 课程已导出到 Web 应用程序并将它们添加到我的 S3 存储桶中。我想知道最好的是我可以从我在 WordPress 平台上构建的网站出售对这些网络应用程序的访问权限。我目前在一个存储桶中有 10 个网络应用程序。
我不希望人们能够获取 URL 并将其发布到某个地方。

标签: amazon-web-serviceswebamazon-s3

解决方案


默认情况下,Amazon S3 中的内容是私有的。仅当您以某种方式授予访问权限时,访问权限才可用。

授予对私有内容的访问权限的一个好方法是使用Amazon S3 预签名 URL。这些授予对私有对象的临时访问权限。

流程将像这样工作:

  • 用户购买课程
  • 然后他们访问“我的课程”页面
  • 生成该页面时,PHP 代码将查阅数据库以确定他们购买了哪些课程
  • 对于他们被允许访问的每门课程,PHP 代码将在 Amazon S3 中生成课程的预签名 URL 。URL 可以配置为提供一段时间的访问,例如 30 分钟
  • 用户跟随该 URL 并访问课程。(注意:这假设只有一个对象被访问。)
  • 一旦过期时间过去,该对象将不再可访问。用户需要返回“我的课程”页面并单击新生成的链接以再次访问该课程

如果用户从页面中提取 URL,他们将能够下载对象。您说“我不希望人们能够获取 URL 并将其发布到某个地方。” 这是无法保证的,因为应用程序正在授予他们访问对象的权限。但是,该访问将是有时间限制的,因此如果他们共享 URL,它将在一段时间后停止工作。

如果您的应用程序需要访问多个 URL(例如,如果第一页引用第二页),则此方法将不起作用。相反,用户需要通过您的应用访问内容,应用每次都会检查他们的访问权限,而不是允许用户直接从 S3 访问内容。


推荐阅读