AmazonSimple Storage Service (S3)是个公开服务Web应用开发人员可以使用它存储数字资产包括图片、视频、音乐和文档S3提供个 RESTful API以编程方式实现和该服务交互通过本文您将了解如何使用开源JetS3t库利用AmazonS3云服务存储和检索数据
面向开源S3云平台介绍
云是个抽象概念表示松散连接在起计算机组这些计算机共同执行某项任务或者服务就像是使用个单独实体完成样此概念背后架构也很抽象:每个云提供者都可以根据各自情况随意设计它产品软件Software即服务(Software as a ServiceSaaS)是个和云相关概念表示云向用户提供某种服务云模型可以降低用户成本他们无需购买软件Software和硬件也可以运行 — 服务提供者已经为用户提供了必要组件
以AmazonS3产品为例顾名思义这是个公开服务使 Web 开发人员能够存储数字资产(如图片、视频、音乐和文档等)以便在应用中使用使用S3时它就像个位于 Internet 机器有个包含数字资产硬盘驱动实际上它涉及到许多机器(位于各个地理位置)其中包含数字资产(或者数字资产某些部分)Amazon还处理所有复杂服务请求可以存储数据并检索数据您只需要付少量费用(大约每月 15 美分 /GB)就可以在Amazon服务器上存储数据1 美元即可通过Amazon服务器传输数据
AmazonS3服务没有重复开发它公开了RESTful API使您能够使用任何支持 HTTP 通信语言访问S3 JetS3t项目是个开源Java库可以抽象出使用S3RESTful API细节将API公开为常见Java思路方法和类编写代码越少越好难道不是吗?充分利用其他人成果也是不错在本文中您将看到JetS3t使S3和Java语言工作变得更加简单从根本上提高了效率
S3开源应用模式介绍
理论上S3是个全球存储区域网络(SAN)它表现为个超大硬盘您可以在其中存储和检索数字资产但是从技术上讲Amazon架构有些区别您通过S3存储和检索资产被称为对象对象存储在存储段(bucket)中您可以用硬盘进行类比:对象就像是文件存储段就像是文件夹(或目录)和硬盘样对象和存储段也可以通过统资源标识符(Unorm Resource IdentierURI)查找
例如在我硬盘中我有个名为 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 通过 Do Name (DNS) 和 CNAME(canonical name缩写)记录您可以将自定义程度更高 URL 映射到S3 URL 这样来您就隐藏了您(或您应用)依赖S3事实!
="xspace-totlerecord">4="xspace-totlepages">1/4="xspace-current">1234>
最新评论