一、什么是S3
傳統(tǒng)方式處理靜態(tài)內(nèi)容(圖片、視頻、CSS、純HTML頁面等)是將其放到磁盤里,隨著訪問量增大,磁盤壓力就會增大,磁盤壓力大可能就會壞掉,所以我們需要一個(gè)海量、高并發(fā)、可靠的存儲,這就是AWS提供的第一個(gè)云計(jì)算服務(wù)——S3。
二、S3的特點(diǎn)
S3(Simple Storage Service)是一個(gè)存儲服務(wù),是AWS第一個(gè)公開提供的服務(wù)(2006),最多支持5T大小的單個(gè)對象,設(shè)計(jì)為99.999999999%的可靠性,叫十一個(gè)九的持久性的可靠性的服務(wù),如果文件存儲到S3里上萬年都不會丟失,所以你也不用擔(dān)心存儲設(shè)備壞了丟失,也不用擔(dān)心他的可用性。
三、深入了解S3
存儲桶是一個(gè)存數(shù)據(jù)對象的管理的一個(gè)單位,存放文件都會進(jìn)行一個(gè)分類,每個(gè)類別可以放入一個(gè)存儲桶中,再比如哪些文件可以公開訪問的,哪些文件只能特定的人進(jìn)行訪問的,就可以用存儲桶來區(qū)分。放到存儲桶里的東西就叫數(shù)據(jù)對象,數(shù)據(jù)對象由文件本身以及描述這些文件的元數(shù)據(jù)組成的。

Amazon S3概念
數(shù)據(jù)對象由內(nèi)容和元數(shù)據(jù)組成,元數(shù)據(jù)(最后修改、內(nèi)容類型、用戶自定義),每個(gè)對象由鍵來確定,存儲桶可提供訪問控制、存儲桶位于一個(gè)區(qū)域中(region)
四、如何使用S3
1、第一步從控制臺登入,選擇S3服務(wù)

2、創(chuàng)建S3存儲桶,為我們的存儲桶起好名稱

下面還會有一些加密選項(xiàng),這里我們只做到創(chuàng)建功能,詳細(xì)的加密內(nèi)容后面會講。

點(diǎn)擊創(chuàng)建我們就可以看到創(chuàng)建好的S3存儲桶

3、下面我們上傳一個(gè)靜態(tài)的圖片資源,點(diǎn)開存儲桶再點(diǎn)擊上傳

從我們的電腦中選擇要上傳的資源,我這里選擇了AWS的logo,然后點(diǎn)擊上傳就可以成功把靜態(tài)資源上傳到S3存儲桶中

這就是剛剛我們上傳的靜態(tài)資源

五、如何在Web中直接嵌套S3
當(dāng)想上傳靜態(tài)文件時(shí),首先需要創(chuàng)建存儲桶,這個(gè)存儲桶要落到某一個(gè)特定的region里,當(dāng)文件上傳到S3中會拿到一個(gè)URL,格式:(https://bucket-name.s3.amazonaws.com/sample+key/name.jpg)
,前面是存儲桶的名字,中間是對象的鍵名,后面是文件名,URL方便和Web頁面代碼整合,無需擔(dān)憂并發(fā)問題,可以后續(xù)使用CloudFront等CDN服務(wù)進(jìn)行加速,就拿我們剛剛上傳的靜態(tài)資源舉例,我們上傳成功后會得到一個(gè)URL路徑。

像這樣直接把URL路徑嵌進(jìn)去就可以了

六、S3數(shù)據(jù)加密以及命令行CLI
S3加密工作原理
server端的加密
server端的加密實(shí)際上是將數(shù)據(jù)傳輸?shù)絘ws,由aws進(jìn)行加密,知道用戶請求讀取數(shù)據(jù)時(shí),再進(jìn)行解密。根據(jù)加密秘鑰存放位置的不同,有三種不同的加密方式,每次加密只能使用其中一種加密方法。
如下圖所示,在對象傳輸?shù)絊3之前,用戶必須在header處指明加密的方式,當(dāng)數(shù)據(jù)進(jìn)入到aws,可以使用KMS(秘鑰管理工具)里面的key進(jìn)行加密或者選擇使用S3來管理key進(jìn)行加密。當(dāng)對安全性要求比較高時(shí),比如用戶希望由自己管理秘鑰,那么用戶就可以提供自己的秘鑰再對數(shù)據(jù)進(jìn)行加密,這種加密方法必須通過命令行的方式實(shí)現(xiàn),而且通過這種方法加密,aws并不會記錄秘鑰以保證數(shù)據(jù)的安全性,秘鑰需要用戶自己進(jìn)行管理。

client 端的加密
如下圖所示,client端加密和解密都是在客戶端完成的,S3收到的數(shù)據(jù)是已經(jīng)加密過的??蛻舳说募用苤饕袃煞N方式,第一種是由KMS(秘鑰管理工具)管理key;第二種方式是客戶管理key,同樣這個(gè)key是不會發(fā)送到aws上的,由客戶自行保障。

使用aws內(nèi)置功能加密
進(jìn)入S3,開啟默認(rèn)加密選項(xiàng),在Default encryption處勾選,隨后選擇下面的S3管理秘鑰的方法。

進(jìn)入該bucket上傳文件,查看文件的屬性,可以看到其加密方法(注意之前上傳過的文件,其加密方式仍為修改前的)。如果需要修改桶的加密方式,使用上面的方法即可。注意第一個(gè)文件的加密方法即時(shí)在修改加密方式后也不會改變,依舊是首次加密時(shí)使用的方法。

七、S3對象鎖
進(jìn)入s3的管理界面,創(chuàng)建一個(gè)新bucket,創(chuàng)建時(shí)勾選Advanced setting處的permanently alow objects in this bucket to be locked即可。

上傳一個(gè)文本文件,點(diǎn)擊該上傳好的文本文件,點(diǎn)擊上面的屬性,進(jìn)入后找到 object lock,點(diǎn)擊進(jìn)入,enable governance mode (表示當(dāng)操作的用戶由權(quán)限時(shí),那么這個(gè)鎖的功能時(shí)不起作用的),enable compliance mode (表示任何用戶都不可以再操作 )選擇這一項(xiàng)即可。


在下面彈出的 confirm compliance mode出輸入confirm,確定一下
查看剛才上傳文件的屬性,可以看到其當(dāng)前的object lock變?yōu)榱薳nabled的狀態(tài),此時(shí)刪除該文件,可以看到改文件后面多了一個(gè)delete marker。如果再選中原文件進(jìn)行刪除,會有錯(cuò)誤提示,警告刪除的操作被拒絕。但是如果對標(biāo)有delete marker的文件進(jìn)行刪除操作是可以成功的。也就是起到了文件的保護(hù)作用,只有到文件的期限到期后,才能進(jìn)行刪除的操作。
八、S3版本控制及生命周期管理
版本控制就是指當(dāng)一個(gè)對象有多個(gè)版本時(shí),可以將其產(chǎn)生的所有版本保存到一個(gè)bucket里。
工作原理:
將某個(gè)文件保存后,其之前的版本都會存在,不過版本號不同;在delete操作時(shí),沒有寫刪除哪一個(gè)版本時(shí),會生成一層帶有delete marker的版本;此時(shí)如果執(zhí)行g(shù)et操作,獲取這個(gè)刪除版本,就會得到一個(gè)錯(cuò)誤;當(dāng)精確到某個(gè)版本時(shí),則會將該版本直接刪除,而不是生成一個(gè)delete marker版本層
我們來試驗(yàn)一下,先創(chuàng)建一個(gè)新的bucket,勾選versloning,其他默認(rèn)即可,此時(shí)該bucket就是一個(gè)帶有版本控制功能的bucket

上傳文件,看到上傳成功。此時(shí)打開該本地文件,添加新的內(nèi)容并保存,此時(shí)在上傳該文件,可以看到文件的size發(fā)生變化,此時(shí)沒有看到之前的版本,需要點(diǎn)擊 顯示版本 來查看,此時(shí)就可以查看到歷史版本。注意有的版本被刪除后,會產(chǎn)生 刪除標(biāo)記 ,實(shí)際上查看版本后發(fā)現(xiàn)源文件并未被刪除,只有再次刪除后才會徹底刪除生效


與生命周期管理功能結(jié)合使用
進(jìn)入bucket管理界面,下面有一個(gè)lifecycle,點(diǎn)擊add lifecycle rule,自定義名稱,下面是策略,默認(rèn)下一步即可,勾選previous版本。點(diǎn)擊下面的add處,在下拉菜單路里選擇 “移動到是s……IA”,右邊寫入30,表示在30天后,將之前的版本移動;可以點(diǎn)add再添加一層策略,選擇“移動到G……”,右邊寫180,表示180天后移動到G……這個(gè)區(qū)域;可以點(diǎn)add再添加一層策略,選擇“移動到D……A”,右邊寫365,表示365天后移動到D……A這個(gè)區(qū)域;next,選previous(表示多久后將這些版本自動永久刪除),next,保存即可








九、S3網(wǎng)站托管
特點(diǎn):
該功能只服務(wù)靜態(tài)網(wǎng)頁
網(wǎng)頁的內(nèi)容是放在s3的bucket里的,bucket必須可公開訪問
s3 url不支持https,其托管的靜態(tài)網(wǎng)站url(url的形式:[bucket-name].s3-website-[AWS-region].amazonaws.com)。注意區(qū)分與普通S3的url的區(qū)別,普通s3的url以https開頭(https://s3.區(qū)域.amazonaws.com/其他內(nèi)容)
支持客戶化域名
實(shí)驗(yàn)一下:準(zhǔn)備一個(gè)html文件,創(chuàng)建一個(gè)bucket,注意取消組織所有公開訪問選項(xiàng),否則無法通過網(wǎng)頁訪問,將網(wǎng)頁文件上傳


在bucket的屬性里打開網(wǎng)站托管功能

此時(shí)進(jìn)入該bucket的屬性中的靜態(tài)網(wǎng)站托管處中,復(fù)制url,將其在網(wǎng)頁中打開,就可以看到剛才上傳的頁面


十、S3跨域資源共享(CORS)
同源策略:在該策略下某個(gè)網(wǎng)頁文檔只能調(diào)用和它在同一個(gè)服務(wù)器上的網(wǎng)頁資源
跨域資源共享:控制跨不同域資源的訪問,比如網(wǎng)站A的網(wǎng)頁請求網(wǎng)站B的圖片,字體等
CORS的特點(diǎn)
絕大部分瀏覽器支持CORS
服務(wù)端和客戶端瀏覽器共同使用http頭信息來完成驗(yàn)證
瀏覽器根據(jù)header決定是否發(fā)出請求
服務(wù)器端根據(jù)header決定是否給予訪問
十一、 S3數(shù)據(jù)查詢Athena服務(wù)
概念:Athena是一種交互式查詢服務(wù),可以使得我們使用標(biāo)準(zhǔn)SQL直接在S3中輕松分析數(shù)據(jù)
特點(diǎn):
無需管理底層架構(gòu)
僅為查詢付費(fèi)文章來源:http://www.zghlxwxcb.cn/news/detail-507939.html
自動擴(kuò)展,并行查詢文章來源地址http://www.zghlxwxcb.cn/news/detail-507939.html
到了這里,關(guān)于AWS第一個(gè)云計(jì)算服務(wù)—S3的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!