使用knox / node.js passthrough将S3文件作为附件下载

时间:2014-02-28 17:03:47

标签: node.js amazon-s3 response-headers knox-amazon-s3-client

我正试图通过node / knox工作从S3下载文件。我的javascript调用正在运行并成功下载该文件,但我想将其作为附件下载。我已尝试将标头设置为'Content-disposition': 'attachment; filename=myfile.zip',但似乎无法正常工作。这是我的示例代码:

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调用上设置这些标题,但仍然不会作为附件下载。

1 个答案:

答案 0 :(得分:1)

所以看起来这个问题根本不是我的服务器,因为我不知道你不能使用xhr(即带有Angular的$ resource)下载文件作为附件。到目前为止,我发现最简单的方法是使用xhr来验证下载,向用户返回一个令牌,可以使用非xhr来获取实际文件。