eag*_*poo 5 javascript amazon-s3 amazon-web-services node.js
我存储了用户在 AWS S3 上上传的图像。当用户在浏览器中查看这些图像时,他们有指向我的应用程序的 url,我在那里使用 s3.getSignedUrl 重定向到一个临时签名的 url。99% 的情况下,一切都很好。
问题是,用户偶尔会上传文件名中包含逗号的图像。当他们然后尝试在 Chrome(并且只有 chrome)中查看该图像时,我收到此错误
net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION
Run Code Online (Sandbox Code Playgroud)
我发现这是逗号,因为其他几个人也有类似的问题,他们通过设置 content-disposition 标头解决了这个问题。
使用 s3 和getSignedUrl,我认为这可以通过在 params 参数中设置 ReponseContentDisposition 属性来完成。具体的解决方法是在内容处置中正确引用文件名,或者只是将文件名设置为根本不包含逗号的其他内容。
然而,那个计划对我不起作用。有人对我可能出错的细节有任何想法吗?
我的服务器是 Node.js。这是执行重定向的 js(就像我说的通常效果很好)
function tempRedirect(req, res) {
var filename = req.params[0];
var params = {
Bucket: S3_BUCKET,
ResponseContentDisposition: 'inline; filename=' + filename.replace(/,/, '_'),
Key: checkTrailingSlash(getFileKeyDir(req)) + filename
};
var s3 = new aws.S3(s3Options);
s3.getSignedUrl('getObject', params, function(err, url) {
res.redirect(url);
});
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2042 次 |
最近记录: |