gpt4 book ai didi

amazon-s3 - 我如何使用 meteor 在base64中编码一个字符串

转载 作者:行者123 更新时间:2023-12-03 08:04:15 28 4
gpt4 key购买 nike

我正在尝试使用表单将文件上传到使用 Meteor 的 s3 存储桶.我正在关注这个亚马逊article .在接近结尾的“签署您的 S3 POST 表单”处,我需要将字符串编码为 base64,但我一直无法找到执行此操作的方法。谁能告诉我该怎么做?请注意,首先需要对字符串进行编码然后签名。这就是它在python中的完成方式:

import base64
import hmac, hashlib

policy = base64.b64encode(policy_document)
signature = base64.b64encode(hmac.new(AWS_SECRET_ACCESS_KEY, policy, hashlib.sha1).digest())

最佳答案

你可以在没有 NodeJS 加密模块的情况下做到这一点,创建一个包对我来说有点像打破了车轮上的苍蝇,所以我想出了这个:

if (Meteor.isServer) {
Meteor.methods({
'base64Encode':function(unencoded) {
return new Buffer(unencoded || '').toString('base64');
},
'base64Decode':function(encoded) {
return new Buffer(encoded || '', 'base64').toString('utf8');
},
'base64UrlEncode':function(unencoded) {
var encoded = Meteor.call('base64Encode',unencoded);
return encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
},
'base64UrlDecode':function(encoded) {
encoded = encoded.replace(/-/g, '+').replace(/_/g, '/');
while (encoded.length % 4)
encoded += '=';
return Meteor.call('base64Decode',encoded);
}
console.log(Meteor.call('base64Encode','abc'));
});

这是基于 John Hurliman 在 https://gist.github.com/jhurliman/1250118 上找到的 base64.js。请注意,这将像服务器上的魅力一样工作,但要将其移植到客户端,您必须使用回调函数调用方法,该回调函数将结果存储为 session 变量。

关于amazon-s3 - 我如何使用 meteor 在base64中编码一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18469255/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com