存储 频道

用Java开发平台访问亚马逊开源云存储

  处理带有效期的文件

  要创建一个针对S3对象的时间敏感型URL,您可以使用 JetS3t 的 createSignedGetUrl 方法,这是一个 S3Service 类型的静态方法。该方法采用一个存储段名称、一个对象键(在本例中是影片名,还记得吗?)、一些凭证(以 JetS3t 的 AWSCredentials 对象的形式)、截止日期。如果您了解所需的存储段和对象键,则可以通过清单 6 中的 Groovy 代码快速获取 URL:

  步骤 6. 创建一个时间敏感型URL

  def now = new Date()
  def url = S3Service.createSignedGetUrl(
  bucket.getName(), s3obj.key, awsCredentials, now + 2)

  使用 Groovy,我可以通过 + 2 语法轻松指定一个 48 小时的限定日期。得到的 URL 如下所示(只有一行):

  https://bc50i.s3.amazonaws.com/nerfwars2.mp4?AWSAccessKeyId=1asd06A5MR2&Expires=1234738280&Signature=rZvk8Gkms=

  现在,通过该 URL,可以在浏览器中获得图 2 所示的内容:


图 2. 用于下载的 URL

  这个过程是不是很简单?通过几行代码,我在云中创建了一个安全资产,该资产只能通过特殊的 URL 下载。利用S3完成时间敏感型下载

  如果您的带宽和存储需求不稳定,则S3能提供很多帮助。例如,想想我演示的业务模型 — 影片在一年中特定的时间发布。在传统的存储模型中,您需要在某处机架上购买许多空间(或提供通向它的硬件和管道),很可能下载量很大,但随后会相对降低。但是,您不能根据需要付费。使用 S3,该模型将根据需要付费 — 公司仅在需要时为存储和带宽付费。更重要的是,S3的安全特性可以帮助您进一步指定人们何时可以下载视频,甚至可以指定谁可以下载。

  使用S3实现这些需求非常容易。在高水平上,创建一个受限的影片公共下载需要 4 个步骤:

  1.登录S3。
  2.创建存储段。
  3.向存储段添加所需的视频(或对象)。
  4.创建一个指向该视频的时间敏感型 URL 。

  就是这样!

0
相关文章