0

我想通过node/knox工作从S3下载文件。我的JavaScript调用正在工作并成功下载该文件,但我想以附件的形式下载它。我曾尝试将标题设置为'Content-disposition': 'attachment; filename=myfile.zip',但它似乎没有工作。这里是我的示例代码:使用knox/node.js传递下载S3文件作为附件

var mimetype = mime.lookup(product.filename);   
var headers = { 
    'Content-disposition': 'attachment; filename=' + product.filename, 
    'Content-type': mimetype 
}; 

var get = knox.getFile(product.filename, function(err, result){ 
    if(err) { return next(err); } 

    res.setHeader('Content-disposition', 'attachment; filename=' + product.filename); 
    res.setHeader('Content-type', mimetype); 

    result.pipe(res);   
}); 

我也尝试在knox调用上设置这些标头,但仍不会作为附件下载。

+0

尝试将“Response-Content-disposition”更改为“Content-disposition”? AFAIK前者不是真正的头球。 – sgress454

+0

对不起,我累了,我已经尝试了正确的标题。 –

+0

看起来很适合我。发生了什么呢,它试图在浏览器中显示字节? – sgress454

回答

1

所以它看起来像问题不是我的服务器,因为我不知道你不能使用xhr(即$资源与Angular)下载文件作为附件。到目前为止,我发现解决这个问题的最简单方法是仅使用xhr来验证下载,并将令牌返回给可以用于非xhr的用户以获取实际文件。