我正在尝试通过 POST 方法通过 HTML 表单将文件上传到 Google Cloud Storage。Google 在他们的文档中声明,要分配非标准 ACL,您需要一个策略和一个签名字段。
阅读他们关于如何生成这些值的描述,看起来很简单。不幸的是,经过多次尝试,我仍然无法生成可以通过 Google 过滤器的值。我不断收到错误消息,说我的签名与保单文件不符。
有人可以指导我哪里出错了吗?这是我的过程:
- 建立我的政策文件
这是简单的部分。我的政策文件是:
{"expiration": "2015-06-16T11:11:11Z",
"conditions": [
["starts-with", "$key", ""],
{"acl": "public-read" },
{"bucket": "publicjs"},
{"success_action_redirect": "http://localhost/gcs.php" }
] }
然后我去了这个网站并将上述值编码为base64。 这就是我用作我的政策文件的内容。
现在签名。我需要使用我的密钥作为加密密钥来加密我的保单文件,所以我去这个网站进行加密。我将我的 base64 编码策略文档(从步骤 2 开始)输入到主文本区域,并将我的互操作性“秘密”密钥输入到密钥框中。
按回车,base64 旁边的值应该是签名值。
将值放入表单,发送 POST 请求,接收错误。
我哪里错了?