我刚刚使用Active Storage上传了一个测试文件(png图像)到Amazon S3。
我注意到的一个想法是,从S3 API返回的文件的etag
与存储在该文件数据库中的blob记录中的checksum
不同。
我在这个网站上运行了MD5校验和:https://appdevtools.com/checksum-calculator的文件,它匹配S3 etag
。
为什么存储在DB blob中的checksum
不同?
test-file.png:
Amazon S3 eTag via API: f1d0a62d6890cf4c4ecb4337c6d789df
`checksum` in Database: 8dCmLWiQz0xOy0M3xteJ3w==
MD5 Checksum when checking on website: f1d0a62d6890cf4c4ecb4337c6d789df
字符串
有谁能解释一下这个问题,以及数据库中的一个与文件有什么关系?
谢谢
1条答案
按热度按时间slsn1g291#
它是相同的值,但存储方式不同。
值
"f1d0a62d6890cf4c4ecb4337c6d789df"
是一个十六进制字符串。值
"8dCmLWiQz0xOy0M3xteJ3w=="
是一个base64编码的字符串。两者都表示校验和的相同原始字节。
从base64转换为hex:
字符串
从hex转换为base64:
型