开发者社区> 问答> 正文

玩转阿里云OSS(一)

玩转OSS,与各位云友分享下~~~~~


一、    项目需求
近期在一个项目中,用户需要构建一个对外的电商平台,整个站点中会有大量的(千万级)商品图片文件,同时为了提高系统访问的响应时间及吞吐量,计划将整个电商网站的大部分页面进行静态化处理。采用什么样的方式存储这些文件以及如何构建一个基于静态HTML文件的Web站点,同时还能保障Web站点能随着将来系统访问量的增加能持续提供稳健、可靠的Web访问能力成为项目设计团队首先要解决的一个问题。
二、    首次触电
早就听闻阿里云的OSS是解决以上类似需求的利器,所以开始动手尝试基于OSS来实现项目场景。OSS提供了控制台和API两种方式实现与OSS上文件访问的交互,在项目的实际场景中大部分下情况都是通过OSS的API实现与OSS的交互,在通过API进行与OSS的交互前首先得理解OSS中跟文件操作相关的两个重要概念:
Object:
在OSS中,用户的每个文件都是一个Object,Object包含key、data和user meta。key是Object名,user meta是对数据的描述。下图中的findbug.html、findbug 错误的用户.html即为object。
[attachment=70423]


Bucket:
存储在OSS上的每个Object必须都包含在Bucket中,Bucket名在整个OSS中具有全局唯一性,且不能修改。一个应用,例如图片分享网站,可以对应一个或多个Bucket。如下图中的ydhlyxpt即为一个bucket:
[attachment=70424]


三、    模拟文件夹功能
在项目的实际场景中,中进行文档发布操作时,将生成的静态HTML文件及相关图片同步上传到OSS的product、image文件夹中。提到文件夹,需要重点说明的是,在OSS中并没有文件夹的概念,所有元素都是以object来存储。但是OSS提供了模拟文件夹的功能,用户可通过创建一个size为0的object,而且这个object的key是以"/"结尾,这样在OSS系统中就认为这个object是一个文件夹,在控制台上就会以文件夹的方式展示,通过“/”分隔符,支持多级文件夹,如下图所示,product文件夹所对应的Object的key为“/product/”,product文件夹中的homepage.html的key为”/product/homepage.html”,即在OSS中是通过Object的key来实现文件与文件夹间的关系。
[attachment=70425]





玩转阿里云OSS(二)
玩转阿里云OSS(三)

玩转阿里云OSS(四)



展开
收起
feun中kul 2015-02-28 18:43:55 9833 0
4 条回答
写回答
取消 提交回答
  • Re玩转阿里云OSS(一)
    感谢LZ 附件已经收藏!
    2015-05-27 16:33:28
    赞同 展开评论 打赏
  • Re玩转阿里云OSS(一)
    楼主好感谢你。。。这个问题困扰了我好久好久。。。我都快哭死了。。。呜呜呜
    2015-05-25 00:04:28
    赞同 展开评论 打赏
  • Re玩转阿里云OSS(一)
    在SDK介绍中貌似没有看到上传Object到Folder的说明,但是自己也想弄到key上,结果和你的是一样的。
    你介绍的比较详细,很好。
    2015-04-21 09:53:06
    赞同 展开评论 打赏
  • 超过10年通信设备研发,精通网络传输,专注于跨国网络问题解决。
    Re玩转阿里云OSS
    赞一个。
    2015-03-01 12:16:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载