Javascript AWS S3通过浏览器直接下载文件

Javascript AWS S3通过浏览器直接下载文件,javascript,node.js,amazon-s3,Javascript,Node.js,Amazon S3,我正试图在浏览器中直接从S3下载一个文件。我正在使用AWS Javascript SDK和NodeJS+网页包 我能够发出GetObject请求,并且可以看到浏览器(Chrome)在“开发者工具”视图中下载字节 我将响应中的“内容处置”标题设置为: Content-Disposition:attachment; filename="A1.jpeg" 但是,我没有看到“另存为”对话框或在我的文件系统(下载文件夹)中创建的任何文件。字节将要到哪里 如何将数据保存到文件中 这是我的密码: var g

我正试图在浏览器中直接从S3下载一个文件。我正在使用AWS Javascript SDK和NodeJS+网页包

我能够发出GetObject请求,并且可以看到浏览器(Chrome)在“开发者工具”视图中下载字节

我将响应中的“内容处置”标题设置为:

Content-Disposition:attachment; filename="A1.jpeg"
但是,我没有看到“另存为”对话框或在我的文件系统(下载文件夹)中创建的任何文件。字节将要到哪里

如何将数据保存到文件中

这是我的密码:

var getObject = function getObject(bucketName, fileName) {

    var params = {
        Bucket: bucketName,
        Key: fileName,
        ResponseContentDisposition: 'attachment; filename="' + fileName + '"'
    };

    return s3.getObject(params).promise();

}

getObject(BUCKET_NAME, item)
.then(
    function (getFileResponse) {
        console.log(" file downloaded.. " );
    }
    ,
    function(error) {
        // Common error handling
        console.log(" error = " + error);
})

我以前遇到过这种情况,然后我使用了“s3.getSignedUrl”函数而不是“s3.getObject”,如下所示:

s3.getSignedUrl('putObject',s3Params).then(function(url){
  //the returned "url" used by the browser to download
},function(error){
  //Error handling
})

s3Params将包含(Buckey,key“object name”等)

你能发布你的GetObject请求吗?@Nickel:用我的代码更新了这个问题。这听起来很有趣。。我的文件将是巨大的(以GB为单位)。当用户开始下载时会发生什么情况?只有在开始下载或整个下载过程中才需要签名的URL吗?还可以通过开发人员工具嗅探该URL吗?如果是这样,其他未经授权的用户也可以下载该文件。与授权问题相关,在我的情况下,仅在生成url时需要授权,但可以生成该url的用户上还有另一个自定义授权。您需要关心的是,与签名url相关的是设置“Expires”参数,使其在下载过程中可用。我希望这对你有帮助。。