我生成了一个 GCP 签名网址,标头中包含两个元数据值。
例子,
‘x-goog-meta-reviewer’:‘简’,
‘x-goog-meta-author’:‘杰克’
当我尝试将文件上传到生成的签名 URL 并在标头中设置元数据时..我收到 403 禁止请求。
但有趣的是,如果我只设置一个元数据,相同的代码可以正常工作
‘x-goog-meta-reviewer’:‘简’
在两个标题中。
我们在尝试将文件上传到 Google 云时能否不发送两个元数据值?
当您构造规范请求 https://cloud.google.com/storage/docs/authentication/canonical-requests你应该记住
规范标头如下:
1.将所有标头名称设为小写。
2.使用按代码字典顺序排序,按标头名称对所有标头进行排序
点值。
3.用换行符 (/n) 分隔每个标头。
4.通过使用以下名称创建一个标头名称来消除重复的标头名称
以逗号分隔的值列表。确保之间没有空格
值,并确保逗号分隔列表的顺序
与请求中标头出现的顺序匹配。了解更多
信息,请参阅 RFC 7230 第 3.2 节。
5.用单个替换任何折叠空白或换行符(CRLF或LF)
空间。有关折叠空白的更多信息,请参阅 RFC 7230,
第 3.2.4 节..
6.删除标题后出现的冒号周围的所有空格
姓名。
7.例如使用自定义标头 x-goog-acl: private without
删除冒号后的空格会返回 403 Forbidden 错误,
因为你计算的请求签名与
Google 计算的签名。
因此,当您计算的请求签名与 Google 计算的签名不匹配时,您可能会收到 403 Forbidden 错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)