????????S3應(yīng)該是Amazon發(fā)布的最早的一項(xiàng)網(wǎng)頁(yè)服務(wù)了翘紊,已經(jīng)有十年了,到現(xiàn)在功能越來(lái)越多暮刃,考試中也是必考的內(nèi)容跨算,見(jiàn)過(guò)最簡(jiǎn)單的一道送分題問(wèn)的是S3代表的是什么,S3是英文的縮寫(xiě)椭懊,是simple storage service诸蚕,直譯的話是簡(jiǎn)單存儲(chǔ)服務(wù)。
????????S3被用到的最多的功能就是存儲(chǔ)數(shù)據(jù)了氧猬,但同時(shí)也有很多其他的性能背犯,最簡(jiǎn)單的使用場(chǎng)景,比如說(shuō)我搭建了一個(gè)資源共享網(wǎng)站盅抚,比如說(shuō)視頻漠魏,文件啊,這些文件由于大小的原因妄均,很適合放在s3中柱锹,在代碼中引用就可以了。
? ? ? ? S3存儲(chǔ)桶
????????那在s3中存放數(shù)據(jù)的時(shí)候丛晦,就需要有個(gè)容器來(lái)存放奕纫,這個(gè)容器就叫做s3存儲(chǔ)桶,存儲(chǔ)桶是s3中用于數(shù)據(jù)存儲(chǔ)的基礎(chǔ)容器烫沙,需要在指定的AWS區(qū)域內(nèi)創(chuàng)建桶匹层,每個(gè)桶的名字必須是整個(gè)AWS系統(tǒng)內(nèi)唯一的,就像域名一樣,已經(jīng)有了淘寶網(wǎng)了升筏,你就不可能再注冊(cè)一個(gè)網(wǎng)站還叫淘寶撑柔。每個(gè)AWS賬戶(hù)下最多能生成100個(gè)S3桶,在S3的桶內(nèi)還可以任意創(chuàng)建文件夾您访。當(dāng)生成存儲(chǔ)桶并在其中存放數(shù)據(jù)后可以根據(jù)數(shù)據(jù)對(duì)象的url來(lái)對(duì)對(duì)對(duì)象進(jìn)行訪問(wèn)铅忿,美國(guó)東部(弗吉尼亞北部)區(qū)域內(nèi)的存儲(chǔ)桶訪問(wèn)url就是,http://s3.amazonaws.com/bucket灵汪,其他區(qū)域的存儲(chǔ)桶url是http://s3-aws-region.amazonaws.com/bucket檀训,在考試中也遇到過(guò),告訴你一個(gè)區(qū)域享言,然后這個(gè)區(qū)域內(nèi)有某個(gè)桶峻凫,和保存的數(shù)據(jù)對(duì)象,讓你選出該對(duì)象的url是什么览露。
????????在桶內(nèi)可以存儲(chǔ)無(wú)限量的數(shù)據(jù)荧琼,就是說(shuō)桶的大小沒(méi)有限制,放多少數(shù)據(jù)都可以差牛,但是每個(gè)數(shù)據(jù)對(duì)象的大小是有限制的命锄,范圍是從0B到5TB,當(dāng)數(shù)據(jù)對(duì)象大于100M的時(shí)候偏化,推薦使用分段上傳脐恩。數(shù)據(jù)對(duì)象的存儲(chǔ)是以鍵值對(duì)的形式保存的。當(dāng)在某個(gè)區(qū)域內(nèi)創(chuàng)建一個(gè)存儲(chǔ)桶夹孔,并在桶內(nèi)存儲(chǔ)數(shù)據(jù)后被盈,aws會(huì)自動(dòng)的將存儲(chǔ)的數(shù)據(jù)同時(shí)復(fù)制到這個(gè)區(qū)域內(nèi)的所有可用區(qū)中,所以默認(rèn)的存儲(chǔ)類(lèi)型中s3里保存的數(shù)據(jù)具有很高的可用性(具有11個(gè)9)以及持久性(99.99%)也就是說(shuō)1000億個(gè)數(shù)據(jù)里最多會(huì)丟失一個(gè)數(shù)據(jù)搭伤。
? ? ? ? 注意點(diǎn):存儲(chǔ)桶不能跨區(qū)域只怎,只能存在于一個(gè)區(qū)域內(nèi);每個(gè)AWS賬戶(hù)只能生成100個(gè)S3存儲(chǔ)桶怜俐;存儲(chǔ)桶的命名必須是唯一的身堡;存儲(chǔ)桶的擁有著不能轉(zhuǎn)移;只有當(dāng)存儲(chǔ)桶中沒(méi)有數(shù)據(jù)的時(shí)候拍鲤,才可以刪除該存儲(chǔ)桶贴谎。
? ? ? ? S3數(shù)據(jù)對(duì)象
? ? ? ? S3的數(shù)據(jù)對(duì)象就是存放在S3存儲(chǔ)桶中的數(shù)據(jù),所有的數(shù)據(jù)都是按照鍵值對(duì)的形式存在的季稳。同時(shí)擅这,數(shù)據(jù)對(duì)象還擁有元數(shù)據(jù),例如content-type, size等景鼠;版本ID仲翎,當(dāng)在S3存儲(chǔ)桶中存儲(chǔ)數(shù)據(jù)的時(shí)候,如果對(duì)存儲(chǔ)桶啟動(dòng)版本管理的話,所有的存儲(chǔ)對(duì)象都會(huì)有一個(gè)版本ID溯香,當(dāng)上傳具有同樣名字的數(shù)據(jù)的時(shí)候鲫构,已被保存的數(shù)據(jù)會(huì)被最新的版本所覆蓋,但由于啟用了版本管理功能玫坛,仍然能夠?qū)⒃瓉?lái)的版本恢復(fù)结笨。
?????????這里還有兩個(gè)概念需要大家理解一下,考試中也見(jiàn)到過(guò):
????????就是s3中的數(shù)據(jù)寫(xiě)后讀一致性和寫(xiě)后讀最終一致性湿镀,其實(shí)這兩個(gè)也很簡(jiǎn)單炕吸,在任何區(qū)域中的s3存儲(chǔ)桶中對(duì)新生成的對(duì)象,然后通過(guò)api或直接訪問(wèn)肠骆,馬上就能讀取到新生成的數(shù)據(jù)文件算途,利用的就是寫(xiě)后讀一致性塞耕。但是對(duì)已有的數(shù)據(jù)進(jìn)行重寫(xiě)覆蓋或者是刪除的話蚀腿,不能馬上得到結(jié)果,得需要一些時(shí)間來(lái)反映扫外,利用的就是寫(xiě)后讀最終一致性莉钙。
????????在存儲(chǔ)桶中存儲(chǔ)數(shù)據(jù)對(duì)象的時(shí)候,還可以選擇對(duì)這個(gè)對(duì)象以什么存儲(chǔ)類(lèi)別來(lái)存儲(chǔ)筛谚,最常用的有四種存儲(chǔ)類(lèi)別磁玉,可以根據(jù)使用場(chǎng)景選擇適合自己的存儲(chǔ)類(lèi)別。
????????有通用型驾讲,這個(gè)是默認(rèn)存儲(chǔ)類(lèi)別蚊伞,當(dāng)上傳對(duì)象時(shí)沒(méi)有指定存儲(chǔ)類(lèi)別的話,s3將會(huì)采用這個(gè)通用性存儲(chǔ)類(lèi)別吮铭。這個(gè)具有高持久性时迫,以及高可用性,存儲(chǔ)的花費(fèi)也是最高的谓晌。
????????還有不經(jīng)常訪問(wèn)的Standard—IA掠拳,這個(gè)用于不頻繁訪問(wèn)的數(shù)據(jù),但是當(dāng)訪問(wèn)的時(shí)候需要能夠快速訪問(wèn)到數(shù)據(jù)纸肉,也具有高持久性和高可用性溺欧,花費(fèi)比通用性低一些。
????????低冗余存儲(chǔ)柏肪,主要應(yīng)用在不是特別重要的姐刁,可以通過(guò)程序再生的數(shù)據(jù),比如說(shuō)網(wǎng)站在上傳了自己的頭像烦味,然后網(wǎng)站利用程序生成了頭像的縮略圖聂使,原圖片一般會(huì)保存在通用類(lèi)別中,而生成的縮略圖會(huì)以低冗余存儲(chǔ)類(lèi)別保存,就算這個(gè)圖片丟失了岩遗,還可以再利用程序?qū)υ瓐D片生成一個(gè)縮略圖扇商,也具有高可用性和高持久性,10000個(gè)對(duì)象中每年可能會(huì)丟失一個(gè)對(duì)象宿礁。
????????還有最后一個(gè)Glacier案铺,這個(gè)適用于存檔數(shù)據(jù),這些數(shù)據(jù)一般不經(jīng)常訪問(wèn)梆靖,而且存檔對(duì)象不能用于實(shí)時(shí)訪問(wèn)控汉,得需要先從glacier里把數(shù)據(jù)還原出來(lái)之后才可以訪問(wèn),這是和前三個(gè)存儲(chǔ)類(lèi)別的一個(gè)不同點(diǎn)返吻,而且上傳對(duì)象時(shí)不能一開(kāi)始就指定以glacier的存儲(chǔ)類(lèi)別保存數(shù)據(jù)姑子,必須得利用對(duì)象的生命周期將對(duì)象轉(zhuǎn)成glacier存儲(chǔ)類(lèi)別,它存儲(chǔ)對(duì)象時(shí)成本特別的低测僵。glacier一般都是最后將數(shù)據(jù)存檔街佑,而不能將數(shù)據(jù)當(dāng)作備份用,因?yàn)閺倪@個(gè)存檔類(lèi)別中讀取數(shù)據(jù)需要很長(zhǎng)的時(shí)間捍靠。