从node.js中的JSON将s3桶策略转换为base64

我正在尝试在node.js中的base64中对Amazon s3存储桶策略进行编码(更具体地说是StringToSign),但似乎无法获得正确的代码。

我使用由amazon提供的默认策略进行testing,因为它们提供了正确的base64编码。 ( 亚马逊给出的例子 )

他们的输出是eyAiZXhwaXJhdGlvbiI6ICIyMDE1........ (保持它很短,因为它很长)

我不断收到eyJleHBpcmF0aW9uIjoiMjAxNS0xMi0zMFQx.....

我的代码来生成这个是:

 var policyString = JSON.stringify(policy) var policyBytes = utf8.encode(policyString) var stringToSign = base64.encode(policyBytes) 

其中policy是以JSON格式保存亚马逊策略的variables,而utf8base64是节点模块。

这可能听起来像一个新手的问​​题,但我一直盯着它一段时间,任何hlep将不胜感激!

我解码了您提供的当前部分值

 eyAiZXhwaXJhdGlvbiI6ICIyMDE1 eyJleHBpcmF0aW9uIjoiMjAxNS0xMi0zMFQx 

各自的产出是:

 { "expiration": "2015 {"expiration":"2015-12-30T1 

正如你所看到的,在你的policyString你已经删除了一些空格。 这是你得到不同的输出的原因