gpt4 book ai didi

python - 如何在 AWS Lambda 上对没有 MD5 校验和的 Google Cloud Storage 上传 (PUT) 的 URL 进行签名

转载 作者:行者123 更新时间:2023-12-01 08:25:10 25 4
gpt4 key购买 nike

我正在尝试在 AWS Lambda 中生成签名 URL,以将对象上传(放置)到 GCS。

我从各种示例中获得了此代码( http://dpaste.com/20QWFRG ),并且它按原样工作。但是,一旦我在签名时删除了传递 header 的 MD5 校验和(这应该是可选的( https://cloud.google.com/storage/docs/access-control/signing-urls-manually )),它就会给我错误。

下面是相同的代码,但没有将 MD5 校验和作为 header 传递,并且它不起作用: http://dpaste.com/2ZH1VVP

最佳答案

删除 Content-MD5 是一个非常糟糕的主意™。从技术上讲,它是可选的,但不应该是可选的,因为它对于数据完整性至关重要。

但是如果您坚持...您的签名代码的问题在于您正在消除有效负载 MD5 哈希应该所在的空白行

Note: After each step of the string construction, add a newline to the string (\n).

https://cloud.google.com/storage/docs/access-control/signing-urls-manually

所以你需要...

signature_string = ('{verb}\n'
'\n'
'{content_type}\n'
...

要签名的字符串始终具有相同数量的 \n 分隔行,即使某些行为可选值留空也是如此。

由于要签名的字符串被用作 HMAC 的输入,然后被丢弃,因此该服务无法允许与确切格式的偏差,无论多么小。

关于python - 如何在 AWS Lambda 上对没有 MD5 校验和的 Google Cloud Storage 上传 (PUT) 的 URL 进行签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com