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

标签 javascript node.js amazon-web-services amazon-s3 base64

我正在尝试在 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 格式保存亚马逊政策,utf8base64 是 Node 模块。

这听起来像是一个新手问题,但我已经盯着它看了一段时间了,如果有任何帮助,我们将不胜感激!

最佳答案

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

eyAiZXhwaXJhdGlvbiI6ICIyMDE1
eyJleHBpcmF0aW9uIjoiMjAxNS0xMi0zMFQx

各自的输出是:

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

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

关于javascript - 将 s3 存储桶策略从 node.js 中的 JSON 转换为 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45043389/

相关文章:

csv - 使用COPY命令的Redshift错误1202 “Extra column(s) found”

ios - AWS S3 预签名 URL ErrorDomain、iOS、AWS SDK v2

javascript - 在 twig 模板加载后执行 javascript

javascript - 当数组中的函数之一不返回 Promise 时,我可以使用 $q.all 吗?

Javascript:服务器端动态变量名

node.js - 如何为生产准备 nodejs?

amazon-web-services - 使用 EC2 Image Builder 将附加 EBS 卷安装到 AMI

javascript - 正则表达式 - 如何在关键字最后一次出现后检索单词

javascript - 创建一个类似 jQuery 的对象

node.js - 服务器日志中对第三方网站的请求