OSS支持ETag、MD5、crc64校验方式,本文为您介绍三者的区别和使用场景。
校验方式 | 使用场景 | 使用说明 |
ETag | 用于判断资源是否发生了变化。 | ETag (entity tag) 在每个Object生成的时候被创建,用于标识一个Object的内容。对于Put Object请求创建的Object,ETag值是其内容的MD5值;对于其他方式创建的Object,ETag值是基于一定计算规则生成的唯一值,但不是其内容的MD5值。 说明 ETag值可以用于检查Object内容是否发生变化。不建议使用ETag作为Object内容的MD5来校验数据完整性。 |
MD5 | 用于数据完整性校验。由客户端计算通过Content-MD5传给服务端,服务端来做对比。 | 如果需要校验上传到OSS的文件和本地文件是否一致,可以在上传文件时携带文件的Content-MD5值。OSS会在接收文件时,将文件的MD5值和Content-MD5进行比对,两者一致时才可以上传成功,从而保证上传数据的一致性。 说明
关于如何进行MD5校验,请参见OSS MD5一致性校验说明。 |
crc64 | 用于数据完整性校验。由服务端计算出来传给客户端,客户端来做对比。 | 如果需要校验上传到OSS的文件和本地文件是否一致,可以使用crc64校验。OSS现在支持对各种方式上传的Object返回其crc64值,客户端可以和本地计算的crc64值做对比,从而完成数据完整性的验证。 说明 MultipartComplete时,如果所有的Part都有crc64值,则会返回整个Object的crc64值,可以用来校验。 关于如何进行crc64校验,请参见通过crc64校验数据传输的完整性。 |