为什么S3 ETag有多余的字符?

时间:2019-12-17 22:06:41

标签: amazon-web-services amazon-s3

我使用s3api put-object上传了一个带有aws cli的文件,响应如下:

{
    "ETag": "\"7bd173e5150f57f8ffe94ad61cd5ea9d\""
}

当我使用md5在本地计算哈希值时,我得到了:

173e5150f57f8ffe94ad61cd5ea9d

为什么ETag的前面有3个额外的字符?这是一个小文件(8KB),所以它是单部分上传的。

1 个答案:

答案 0 :(得分:1)

它实际上并没有2个额外的字符。这里发生了两件事。

ETag是required,要用"引起来,所以对象的ETag是"7bd173e5150f57f8ffe94ad61cd5ea9d" -引号是ETag的一部分。

并且此输出为JSON,其中要求将字符串包装在"中...因此,字符串中的"字符必须以反斜杠进行转义,例如以JSON表示的5个字符的字符串"foo"(其中引号字符是字符串本身的一部分,而不是简单地将字符串括起来),表示为"\"foo\""