AWS對(duì)象存儲(chǔ)服務(wù)Amazon S3,現(xiàn)在除了原本的MD5校驗(yàn)和(Checksum)算法之外,額外添加4種校驗(yàn)和算法,供用戶根據(jù)需求,選擇計(jì)算和存儲(chǔ)對(duì)象的校驗(yàn)和,并且以校驗(yàn)和檢查上傳與下載請(qǐng)求的完整性。目前新的4種校驗(yàn)和算法,包括SHA-1、SHA-256、CRC-32和CRC-32C,已經(jīng)在所有商業(yè)AWS地區(qū)提供,用戶不需要支付額外費(fèi)用就可以使用。
Amazon S3為了確認(rèn)對(duì)象正確地來(lái)回傳輸,會(huì)使用校驗(yàn)和,也就是一種數(shù)字指紋,來(lái)驗(yàn)證傳輸資料的正確性。S3的PutObject函數(shù)讓用戶能夠傳遞對(duì)象的MD5校驗(yàn)和,并且只在用戶提供的值,和S3所計(jì)算出來(lái)的值相符合時(shí),S3才會(huì)接受該操作。
雖然S3能夠使用MD5校驗(yàn)和來(lái)偵測(cè)資料傳輸錯(cuò)誤,但這也代表用戶在調(diào)用PutObject函數(shù)之前,或是調(diào)用GetObject函數(shù)之后,必須計(jì)算校驗(yàn)和,官方提到,計(jì)算數(shù)GB甚至是數(shù)TB容量對(duì)象的校驗(yàn)和,是一項(xiàng)運(yùn)算密集的工作,可能導(dǎo)致作業(yè)上出現(xiàn)運(yùn)算瓶頸,許多大型的S3用戶,甚至需要構(gòu)建專門的EC2機(jī)隊(duì),來(lái)計(jì)算和驗(yàn)證校驗(yàn)和。
而AWS新提供的4種校驗(yàn)和算法,將有助于緩解這樣的狀況,因?yàn)橛脩魧⒖梢愿鶕?jù)需求,選擇不同復(fù)雜度的算法,更快速地計(jì)算和存儲(chǔ)在S3中對(duì)象的校驗(yàn)和,并使用校驗(yàn)和高效率檢查上傳和下載請(qǐng)求,以實(shí)例特定產(chǎn)業(yè)數(shù)字保存的最佳實(shí)踐。當(dāng)用戶將對(duì)象上傳至S3時(shí),便可選擇SHA-1、SHA-256、CRC-32和CRC-32C任一種校驗(yàn)和算法。
由于最新版本的AWS SDK運(yùn)算,需要在上傳的時(shí)候進(jìn)行校驗(yàn)和計(jì)算,并在上傳結(jié)束時(shí),將其包含在HTTP Trailer中,用戶可以提供預(yù)先計(jì)算好的校驗(yàn)和,AWS提到,結(jié)合校驗(yàn)和與HTTP Trailer,可以大幅加速客戶端完整性檢查。
新的校驗(yàn)和算法也可以用于多段對(duì)象上傳,AWS SDK現(xiàn)在支持平行處理,并在多段上傳中計(jì)算每段對(duì)象的校驗(yàn)和,完整對(duì)象的校驗(yàn)和,將會(huì)是所有部分校驗(yàn)和的加總,而這個(gè)校驗(yàn)和的校驗(yàn)和,將會(huì)在對(duì)象傳輸完成時(shí)一并被上傳至S3。
經(jīng)驗(yàn)證的校驗(yàn)和以及指定使用的算法,都是對(duì)象元數(shù)據(jù)的一部分,當(dāng)對(duì)象請(qǐng)求使用KMS密鑰進(jìn)行服務(wù)器端加密,則校驗(yàn)和也會(huì)以加密的形式存儲(chǔ),即便是對(duì)象更換了存儲(chǔ)類別,或是被更新版本取代,算法和校驗(yàn)和會(huì)在整個(gè)生命周期中,和對(duì)象形影不離,同時(shí)校驗(yàn)和也會(huì)在S3對(duì)象復(fù)制時(shí)一起被傳輸。用戶現(xiàn)在可以使用新的GetObjectAttributes函數(shù),以取得對(duì)象和每一部分的校驗(yàn)和。