2017-01-19 19 views
1

AWS Cognitoから受け取った一時的な資格情報を使用してS3バケットにファイルをアップロードしようとしています。私はaccess-tokenにアクセスしていますが、AWS S3クライアントの初期化を迷っています。現在私はaccess-tokenidTokenをクッキーに保存していますが(変更されます)JavaScriptで一時的な資格情報を使用してAWS S3にアップロード

アップロードのページが表示されたら、ファイルの入力とファイルのアップロードボタンがあり、ボタンを押してファイルをアップロードしたいのですが、どうやってそれを行うのかわかりません本当に、本当に、愚かな文書を無駄に渡していた。

これは、これまでの私のコードです:クッキーを取得し、復号化するための方法があるよう

(function(){ 
    var fileSource = $("#fileSource"); 
    fileSource.on("change", function(){ 
     var filePath = $(this).val().split("\\"); 
     $("#upload-file-info").html(filePath[filePath.length - 1]); 
    }); 
    console.log("accessToken", accessToken); 
    console.log("idToken", idToken); 
    AWS.config.region = Region; 
    var bucket = new AWS.S3({ 
     params: { 
      Bucket: bucketName + "/" + idToken["cognito:username"] 
     } 
    }); 
    console.log(bucket); 
    $("#uploadButton").on("click", function(){ 
     if(!window.FileReader){ 
      return alert("FileReader API is not supported by your browser."); 
     } 
     var input = fileSource[0]; 
     if(input.files && input.files[0]){ 
      file = input.files[0]; 
      fr = new FileReader(); 
      fr.onload = function() { 
       var objKey = bucketName + "/" + idToken["cognito:username"] + '/' + file.name; 
       var params = { 
        Key: objKey, 
        ContentType: file.type, 
        Body: file 
       }; 
       console.log(params); 
       bucket.putObject(params, function (err, data) { 
        if (err) { 
         console.log("arguments", arguments) 
        } else { 
         console.log("arguments", arguments) 
        } 
       }); 
      }; 
      fr.readAsDataURL(file); 
     } else { 
      alert("File not selected or browser incompatible.") 
     } 
    }); 
})(); 

bucketNameは別のファイルで定義されています。

誰かが正しい方向で私を指すことができるなら、私は何かが欠けていることを知っているので、私は感謝します!誰かがこの作業をしているレポへのポインタさえも役に立ちます。

(私はこのサーバレスのものの考え方が好きで、それは私がこのようなパラダイムを変えるヘッド孫の手だ)

答えて

0

はまだthe documentationを通じてドラッグナックルこの中に私自身の答えの多くを発見しました。基本的に、Javascript SDKは、私が必要としているものの大部分を私のためにローカルストレージに入れているので、クッキーを使いこなす必要はありません(クッキーから離れてローカルストレージを使用した後、 )。私はまだまだそこにいませんが、私はいくつかの進歩を遂げており、後でさらに質問しなければならないかもしれません。

+0

これはあなたがこれを理解しましたか? – Thomas

関連する問題