我正在尝试在 node.js 中以 base64 编码 Amazon s3 存储桶策略以获取签名(更具体地说是 StringToSign),但似乎无法获得正确的代码。
我使用亚马逊提供的默认策略进行测试,因为它们提供了正确的 base64 编码。 ( The example given by amazon )
他们的输出是eyAiZXhwaXJhdGlvbiI6ICIyMDE1......
(保持简短因为它很长)
我不断收到 eyJleHBpcmF0aW9uIjoiMjAxNS0xMi0zMFQx.....
我生成这个的代码是:
var policyString = JSON.stringify(policy)
var policyBytes = utf8.encode(policyString)
var stringToSign = base64.encode(policyBytes)
其中 policy
是一个变量,以 JSON 格式保存亚马逊政策,utf8
和 base64
是 Node 模块。
这听起来像是一个新手问题,但我已经盯着它看了一段时间了,如果有任何帮助,我们将不胜感激!
最佳答案
我解码了你提供的当前部分值
eyAiZXhwaXJhdGlvbiI6ICIyMDE1
eyJleHBpcmF0aW9uIjoiMjAxNS0xMi0zMFQx
各自的输出是:
{ "expiration": "2015
{"expiration":"2015-12-30T1
如您所见,在您的 policyString
中您已经删除了一些空格。这就是你得到不同输出的原因
关于javascript - 将 s3 存储桶策略从 node.js 中的 JSON 转换为 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45043389/