آموزش جاوااسکریپت انجمن ها Nodejs دانلود فایل

  • این موضوع خالی است.
در حال نمایش 1 نوشته (از کل 1)
  • نویسنده
    نوشته‌ها
  • #55005 پاسخ
    همایون
    میهمان

    سلام
    من یه api ساده نود دارم که قراره یه فایل که نزدیک به 5 گیگ را دانلود کنه و فایل روی یه سروری دیگه است که برنامه نود ما قراره با مثلا با axios اون را دانلود کنه و استریم دریافتی را در response بنویسه . تا اینجا اوکیه

    چرا وقتی آدرس api نود را میدم به Download manger فقط با یک کانکشن اقدام به دانلود می کنه
    دلیلش: Range Haader است که استفاده درستش را نمی دونم چطوریه ؟

    ممنون

    این هم کدها

    const express = require(‘express’)
    const app = express()
    const axios = require(‘axios’)

    const PORT = process.env.PORT || 4000
    const URL = “https://upmediaa.upera.tv/2753985-0-HQ_1080.mp4?ref=7wIA”

    app.get(‘/’, (req, res) => {
    downloadUsingAxios(res, URL)
    })

    const downloadUsingAxios = async (res, downloadUrl, chunkSize = 10 << 20) => {
    let offset = 0, length = 0;
    await axios({
    method: “HEAD”,
    url: downloadUrl
    }).then(response => {
    length = response.headers[“content-length”];
    });

    res.set({
    “content-disposition”: ‘attachment; filename=”big_buck_bunny_720p_5mb.mp4″‘,
    “content-type”: “application/octet-stream”,
    “content-length”: length,
    })

    const { data } = await axios({
    method: ‘GET’,
    url: downloadUrl,
    responseType: ‘stream’,
    headers: {
    ‘content-range’: bytes ${offset}-${offset += chunkSize}/${length}
    }
    })
    data.on(‘data’, (chunk) => { res.write(chunk) })

    data.on(‘close’, function () { res.end(‘success’) })

    data.on(‘error’, function () { res.send(‘something went wrong ….’) })
    };

    app.listen(PORT, () => {
    console.log(Server is running on port: ${PORT})
    })

در حال نمایش 1 نوشته (از کل 1)
پاسخ به: دانلود فایل
اطلاعات شما: