gpt4 book ai didi

javascript - 使用 JavaScript 中的临时凭证上传到 AWS S3

转载 作者:行者123 更新时间:2023-11-29 23:55:46 24 4
gpt4 key购买 nike

我正在使用从 AWS Cognito 收到的临时凭证将文件上传到 S3 存储桶,但我感到非常沮丧。我可以访问 access-token 但我在尝试初始化 AWS S3 客户端时迷路了。目前,我将 access-tokenidToken 存储在 cookie 中(尽管这会改变)。

当我到达我的上传页面时,我有一个文件输入和文件上传按钮,我想在按下的按钮上上传文件......但我不知道该怎么做,我感觉真的,真的,愚蠢地浏览文档无济于事。

到目前为止,这是我的代码:

(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 以及检索和解码 cookie 的方法在另一个文件中定义。

如果有人能指出我正确的方向,我将不胜感激,因为我知道我错过了什么!即使是指向某人已经完成这项工作的 repo 协议(protocol)也会有所帮助。

(我喜欢这种无服务器的想法,但像这样改变范式让我头疼)

最佳答案

找到了我自己的大部分答案,同时仍在努力拖着 the documentation .基本上,Javascript SDK 为我将我需要的大部分内容放入本地存储中,因此无需乱用所需的 cookie(我只是在远离 cookie 并为自己使用本地存储之后才记录这个,并检查本地存储;-) ).虽然我还没有做到这一点,但我正在取得一些进展,稍后我可能不得不问一个进一步的问题。

关于javascript - 使用 JavaScript 中的临时凭证上传到 AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41744216/

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