【问题标题】:Downloading S3 file as attachment using knox/node.js passthrough使用 knox/node.js 直通下载 S3 文件作为附件
【发布时间】:2014-04-01 19:44:31
【问题描述】:

我正在尝试通过 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 调用中设置这些标头,但仍然不会作为附件下载。

【问题讨论】:

  • 尝试将“Response-Content-disposition”更改为“Content-disposition”? AFAIK 前者不是真正的标题。
  • 对不起,我累了,我已经尝试了正确的标题。
  • 对我来说很合适。发生了什么,它是否试图在浏览器中显示字节?
  • 是的。如果我console.log 结果,它只显示字节。我正在使用 Angular,所以如果您认为这看起来不错,我想知道它是否与客户端代码相关?

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2015-10-05
    • 2017-04-27
    • 2011-06-27
    相关资源
    最近更新 更多