Amazon S3添加4种适合不同用途的校验和算法

AWS对象存储服务Amazon S3,现在除了原本的MD5校验和(Checksum)算法之外,额外添加4种校验和算法,供用户根据需求,选择计算和存储对象的校验和,并且以校验和检查上传与下载请求的完整性。目前新的4种校验和算法,包括SHA-1、SHA-256、CRC-32和CRC-32C,已经在所有商业AWS地区提供,用户不需要支付额外费用就可以使用。

Amazon S3为了确认对象正确地来回传输,会使用校验和,也就是一种数字指纹,来验证传输资料的正确性。S3的PutObject函数让用户能够传递对象的MD5校验和,并且只在用户提供的值,和S3所计算出来的值相符合时,S3才会接受该操作。

虽然S3能够使用MD5校验和来侦测资料传输错误,但这也代表用户在调用PutObject函数之前,或是调用GetObject函数之后,必须计算校验和,官方提到,计算数GB甚至是数TB容量对象的校验和,是一项运算密集的工作,可能导致作业上出现运算瓶颈,许多大型的S3用户,甚至需要构建专门的EC2机队,来计算和验证校验和。

而AWS新提供的4种校验和算法,将有助于缓解这样的状况,因为用户将可以根据需求,选择不同复杂度的算法,更快速地计算和存储在S3中对象的校验和,并使用校验和高效率检查上传和下载请求,以实例特定产业数字保存的最佳实践。当用户将对象上传至S3时,便可选择SHA-1、SHA-256、CRC-32和CRC-32C任一种校验和算法。

由于最新版本的AWS SDK运算,需要在上传的时候进行校验和计算,并在上传结束时,将其包含在HTTP Trailer中,用户可以提供预先计算好的校验和,AWS提到,结合校验和与HTTP Trailer,可以大幅加速客户端完整性检查。

新的校验和算法也可以用于多段对象上传,AWS SDK现在支持平行处理,并在多段上传中计算每段对象的校验和,完整对象的校验和,将会是所有部分校验和的加总,而这个校验和的校验和,将会在对象传输完成时一并被上传至S3。

经验证的校验和以及指定使用的算法,都是对象元数据的一部分,当对象请求使用KMS密钥进行服务器端加密,则校验和也会以加密的形式存储,即便是对象更换了存储类别,或是被更新版本取代,算法和校验和会在整个生命周期中,和对象形影不离,同时校验和也会在S3对象复制时一起被传输。用户现在可以使用新的GetObjectAttributes函数,以取得对象和每一部分的校验和。