存储 频道

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

  S3开源应用模式介绍

  理论上,S3是一个全球存储区域网络(SAN),它表现为一个超大的硬盘,您可以在其中存储和检索数字资产。但是,从技术上讲,Amazon的架构有一些不同。您通过S3存储和检索的资产被称为对象。对象存储在存储段(bucket)中。您可以用硬盘进行类比:对象就像是文件,存储段就像是文件夹(或目录)。与硬盘一样,对象和存储段也可以通过统一资源标识符(Uniform Resource Identifier,URI)查找。

  例如,在我的硬盘中,我有一个名为 whitepaper.pdf 的文件,它位于主目录中名为 documents 的文件夹中。相应的,该pdf文件的URI为 /home/aglover/documents/whitepaper.pdf 。在S3中,URI有一点不同。首先,存储段只能是优异的 — 无法像嵌套硬盘中的文件夹(或目录)一样进行嵌套。其次,存储段必须遵循 Internet 命名法则;句点旁边没有斜杠,名称不包括下划线等等。最后,由于存储段名称已经是Amazon域内的 (s3.amazonaws.com) 公共URI的一部分,存储段名称必须在所有S3中是惟一的。(好消息是每个帐户只能包含 100 个存储段,因此不用担心别人占用了所有的好名字)。

  存储段在S3中是URI的根。也就是说,存储段的名称将是指向S3中某个对象的URI的一部分。例如,如果我有一个名为 agdocs 的存储段以及一个名为 whitepaper.pdf 的对象,URI将是:http://agdocs.s3.amazonaws.com/whitepaper.pdf 。

  S3还提供了指定存储段和对象的所有者和权限的能力,就像对待硬件的文件和文件夹一样。在S3中定义对象或存储段时,您可以指定一个访问控制策略,注明谁可以访问您的S3资产以及如何访问(例如,读和写权限)。相应地,您可以通过许多方式提供对您的对象的访问,使用RESTful API只是其中一种。

  这里Amazon有一个神奇的DNS魔术,用户不用担心S3资产的 URL 。通过 Domain Name System (DNS) 和 CNAME(canonical name的缩写)记录,您可以将自定义程度更高的 URL 映射到S3的 URL 。这样一来,您就隐藏了您(或您的应用程序)依赖S3的事实!

0
相关文章