玩转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(四)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。