首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法从从S3存储桶获取xlsx文件的Node.js (express)服务返回xlsx文件,以供浏览器应用程序使用

无法从从S3存储桶获取xlsx文件的Node.js (express)服务返回xlsx文件,以供浏览器应用程序使用
EN

Stack Overflow用户
提问于 2020-11-26 10:45:44
回答 1查看 56关注 0票数 0

在Excel中创建了一个xlsx文件,通过控制台从桌面手动上传到亚马逊S3。现在我想添加一个端点到javascript express服务,该服务将从S3检索该文件,并将其传递回Node.js浏览器应用程序。

对于纯文本文件似乎没问题,但xlsx文件(甚至是在Excel中创建的csv )的HTTP状态码仍为500。

尝试过的变体,比如:

代码语言:javascript
代码运行次数:0
运行
复制
res.send(s3.getObject().toString()); //this works with plain text file
代码语言:javascript
代码运行次数:0
运行
复制
res.send(s3.getObject().toString('utf-8'));
代码语言:javascript
代码运行次数:0
运行
复制
res.send(s3.getObject().toString('binary'));

这些都不走运,呼叫立即失败,并出现500内部服务器错误。

EN

回答 1

Stack Overflow用户

发布于 2020-11-26 11:27:05

就像这样

代码语言:javascript
代码运行次数:0
运行
复制
    s3.headObject(params, 
        (err, data)=>{
            if (err) {
                  return res.status(500).end(err.message);
            }
            // Add the content type to the response (it's not propagated from the S3 SDK)
            res.set({
                'Content-Type': data.ContentType,
                'Content-Length': data.ContentLength,
                'Last-Modified': data.LastModified,
                'ETag': data.ETag
            });
            s3.getObject(params).createReadStream().pipe(res)
        }
    );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65015445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档