Amazon S3バケットポリシーをnode.jsのbase64でエンコードして、署名(具体的にはStringToSign)を取得しようとしていますが、取得できないようですコードの権利。node.jsのJSONからs3バケットポリシーをbase64に変換する
amazonで提供されているデフォルトのポリシーを使用して、正しいbase64エンコーディングを提供しているため、テストしています。 policy
がどこにある
var policyString = JSON.stringify(policy)
var policyBytes = utf8.encode(policyString)
var stringToSign = base64.encode(policyBytes)
:(The example given by amazon)
、それらの出力は、私がこれを生成するeyJleHBpcmF0aW9uIjoiMjAxNS0xMi0zMFQx.....
私のコードを得続ける
eyAiZXhwaXJhdGlvbiI6ICIyMDE1........
される(それは短い、それはかなり長いですので維持されます) JSON形式でamazonポリシーを保持する変数、utf8
およびbase64
はノードモジュールです。
これは初心者の質問のように聞こえるかもしれませんが、私はしばらくそれを見てきました。
base64でエンコードされた値の完全な出力を提供することができます –
私が正しく理解すれば、aws sdkはこの機能を提供します: http://docs.aws.amazon。 com/AWSJavaScriptSDK/latest/AWS/S3.html#createPresignedPost-property ソースコードの計算方法については、ソースコードを確認することができます:https://github.com/aws/aws-sdk-js/blob/d3f0701e8aff9697231f023d2e5a5c289a8ec8ec/ lib/services/s3.js#L905 – Andreas