AWS Cognitoから受け取った一時的な資格情報を使用してS3バケットにファイルをアップロードしようとしています。私はaccess-token
にアクセスしていますが、AWS S3クライアントの初期化を迷っています。現在私はaccess-token
とidToken
をクッキーに保存していますが(変更されます)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
は別のファイルで定義されています。
誰かが正しい方向で私を指すことができるなら、私は何かが欠けていることを知っているので、私は感謝します!誰かがこの作業をしているレポへのポインタさえも役に立ちます。
(私はこのサーバレスのものの考え方が好きで、それは私がこのようなパラダイムを変えるヘッド孫の手だ)
これはあなたがこれを理解しましたか? – Thomas