所以我想上传一个文件,并让AWS在上传后执行指定的CRC32(假设CRC是ABCD1234)检查,但我一直得到这个错误。
usage: aws [options][…][参数]要查看帮助文本,可以运行:
aws help aws help aws help
未知选项:——checksumcrc32, ABCD1234
我使用的命令如下(括号[]表示变量)
aws s3api put-object——bucket [BUCKET_NAME]——checksum-crc32"ABCD1234"——key [NAME_OF_FILE]——body [DESTINATION_PATH]——profile(PROFILE_NAME)
没有——checksum-crc32的上传可以正常工作。
版本:aws-cli/2.4.4
猜猜为什么我得到这个错误?
提前感谢!
文档说CRC需要Base-64编码,而不是十六进制:
——checksum-crc32(字符串)
这个报头可以用作数据完整性检查来验证接收到的数据与最初发送的数据相同。这个头指定该对象的base64编码、32位CRC32校验和。为更多信息请参见检查Amazon S3用户对象完整性指南。
所以你的ABCD1234
需要是q80SNA==
或NBLNqw==
,这取决于他们是否希望32位分别以大端序或小端序呈现。我在文档中没有看到任何说明它是哪个
CRC32与他们的计算不匹配。确保你的编码正确。
您不需要在cli上指定校验和,您可以通过删除--checksum-crc32
并用--checksum-algorithm "crc32"
替换它来让客户端计算它
如果你的目标是数据完整性,可以考虑像SHA256这样的加密安全算法,它也可以由cli自动计算。