javascript - 通过 AWS Javascript SDK 将 S3 缓冲区保存到文件

标签 javascript amazon-web-services amazon-s3 browser

我正在使用 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/

相关文章:

javascript - 检查变量 jQuery 的最佳方法

javascript - 无法使用 casperjs 处理弹出网页

amazon-web-services - S3 策略允许写入存储桶但不允许从中读取,这可能吗?

node.js - 从 Amazon S3 存储中删除图像

javascript - 将 jquery 和 javascript 放入外部文件中

javascript - Angular 生成一个空的 <option>

amazon-web-services - AWS chalice 错误。如何正确放置我的凭据?

python - 使用 Boto 轮询停止或启动 EC2 实例

Android 将图像从设备库上传到 Amazon S3 服务器

amazon-web-services - 遇到不支持的属性 Indexdocument