app.get('/download', (req, res) => {
const file = path.join(__dirname, 'demo.txt');
const filename = path.basename(file);
res.setHeader('Content-disposition', `attachment; filename=${filename}`);
res.setHeader('Content-type', 'application/octet-stream');
const filestream = fs.createReadStream(file);
console.log('done-task', res.header);
return filestream.pipe(res);
});
В локальной настройке: он работает хорошо, и я могу загрузить файл из своего браузера.
Но реальная проблема начинается здесь
My Nginx config :
#Reverse-Proxy API Application
upstream pqw_api {
# api calls proxied
server 127.0.0.1:8080;
}
location /download {
proxy_set_header X-NginX-Proxy true;
proxy_pass http://pqw_api;
proxy_pass_request_headers on;
proxy_redirect off;
# revert back to normal if it is not working
include /etc/nginx/mime.types;
add_header Content-Disposition 'attachment; filename="demo.txt"';
# proxy_buffer_size 128k;
# proxy_buffers 4 256k;
# proxy_busy_buffers_size 256k;
# proxy_read_timeout 160;
# proxy_send_timeout 160;
}
При развертывании nginx выполняется в другом контейнере, а код node.js выполняется в другом контейнере.
Итак, развертывание завершено. Когда я получаю доступ к URL-адресу для загрузки, я получаю 200 кодов статуса, но файл не загружается.
Может кто-нибудь мне помочь. Заранее спасибо.