1.Сценарий
Нажмите кнопку загрузки => child_process.execSyn c (CopyFiles) => zip-файл => return res.send ('ok').
Но проблема в том, что если файл, который будет заархивирован, большой, он говорит, что не удалось загрузить.
Я устанавливаю тайм-аут и неограниченный размер в nginx config и BodyParser (json + urlencode для расширенного: true & предел: 5 МБ).
Нужно ли менять конфигурацию больше, чем сейчас? Кажется, он хорошо работает в локальном режиме, копирует файлы и архивирует должным образом на Prod Server, но просто говорит, что не может загрузить. И если я заставляю открыть страницу, она бесконечно повторяет одинаковые логики c.
Я использую nginx, ec2, nuxt, express. js. Не удается загрузить ответ, ошибка сети.
#copy file
files.forEach(file=> {
return execSync(`cp ${folder}/${name} ${path}/images`)
})
#make ctx
await files.forEach(file=>{
const canvas = createCanvas(file.width, file.height)
const ctx = canvas.getContext("2d")
labels.forEach(label => {
ctx.beginPath()
label.points.forEach(point => ctx.lineTo(point.x, point.y))
ctx.closePath()
ctx.fill()
})
const stream = canvas.createJPEGStream()
const out = fs.createWriteStream(destination)
stream.pipe(out)
return new Promise(resolve => {
out.on("finish", resolve)
})
#zip
execSync(
`cd ${DSPath}/.. ;zip -r ${issue.id}_${now}.zip ./${issue.id}_${now}`,
)
#download and remove file
return res.download(`${path}/../file_name.zip`, err =>
execSync(`cd ${DSPath}/.. ;rm -rf ./${issue.id}_${now}.zip ./${issue.id}_${now}/`))
#nginx
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 0;
proxy_max_temp_file_size 0;
proxy_buffering off;
server_names_hash_bucket_size 256;
send_timeout 1800;
proxy_read_timeout 5000;
proxy_send_timeout 5000;
proxy_connect_timeout 5000;
fastcgi_read_timeout 5000;
proxy_cache off;
proxy_set_header Connection '';
chunked_transfer_encoding off;```
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_min_length 10240;
gzip_proxied no-cache no-store private expired auth;
gzip_comp_level 9;