1

ユーザーが AWS S3 バケットから動画をダウンロードできるようにしたいと考えています。ビデオ形式は MP4 です。

app.get("/download_video", function(req,res) {
    filename = "s3.xxx.amazon.com/bucketname/folder/video_example.mp4";
    // im stuck on what i can do here
});

nodejsを使用して画像やテキストファイルをオンラインでダウンロードする方法の例はたくさんありますが、ビデオには何も見つかりません.

4

2 に答える 2

5
use strict

const Fs = require('fs')
const Path = require('path')
const Listr = require('listr')
const Axios = require('axios')

function one (tasks) {

  tasks.run()
   .then(process.exit)
   .catch(process.exit)
}


if (process.argv) {

  const tasks = [{
    title: 'Downloading',
    task: async (ctx, task) => {
      const url = 'https://s3.xxx.amazon.com/bucketname/folder/video_example.mp4"'
      const path = Path.resolve(__dirname, 'media', 'video.mp4')

      const response = await Axios({
        method: 'GET',
        url: url,
        responseType: 'stream'
      })

      response.data.pipe(Fs.createWriteStream(path))

      return new Promise((resolve, reject) => {
        response.data.on('end', () => {
          resolve()
        })

        response.data.on('error', err => {
          reject(err)
        })
      })
    }
  }]

  one(new Listr(tasks))
}
于 2018-12-17T09:43:21.137 に答える