我正在使用 AWS Javascript SDK 从 S3 下载文件
var s3 = new AWS.S3();
var params = {
Bucket: "MYBUCKET",
Key: file
};
s3.getObject(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
//code to save file from data's byte array here
}
});
这感觉应该比我想象的要容易。基本上我想触发浏览器的 native 文件下载。我在互联网上找到的所有资源都是针对节点的文件系统的。我不能只使用文件的 URL 来下载,因为它是通过 KMS 加密存储的,所以这就是我采用这种方式的原因。
感谢您的帮助!
最佳答案
我最终改变了存储文件的方式。我没有使用 KMS 对其进行加密,而是将它们移至私有(private)存储桶,然后根据登录的认知用户 ID 进行检索。然后,我改用 getSignedURL 来适本地传递 cognito 用户 ID。
var s3 = new AWS.S3();
var params = {
Bucket: "MYBUCKET",
Key: cognitoUser.username + "/" + file
};
var url = s3.getSignedUrl('getObject', params);
window.open(url);
关于javascript - 通过 AWS Javascript SDK 将 S3 缓冲区保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48283670/