создать zip на сервере и отправить пользователю с помощью NODE JS - PullRequest
0 голосов
/ 01 марта 2019

Я использую сторонний API, который дает мне несколько изображений.

1) сначала мне нужно загрузить эти изображения на сервер и создать ZIP из этих изображений (сторонние API предоставляют URL-адреса изображений)

2) После успешного создания Zip пользователь будет загружать этот ZIP в свою локальную систему.

Мне нужно выполнить эту задачу, используя nodejs или его библиотеку NPM

.это

1 Ответ

0 голосов
/ 01 марта 2019
import cmd from 'node-command-line'
import zipFolder from 'zip-folder'
import Download from 'image-downloader'

Прежде всего создайте директорию или папку, чтобы преобразовать ее в zip

const zipName = `zipFolderName`
//Folder name which become zip
cmd.run(`mkdir -p ${__dirname}/../public/`)          
//Create public direactory in server(backend)
cmd.run(`chmod -R 777 ${__dirname}/../public/`)
//Give persmission on public folder
cmd.run(`mkdir -p ${__dirname}/../public/${zipName}/`)
cmd.run(`mkdir -p ${__dirname}/../public/${zipName}/${zipName}/`)

Загрузите все изображение или файл, используя url, и сохраните

const promiseArr = []
const url = decodeURI('path_of_url') //Decode url 
const fileName = url.replace(/.*\//g, '') //extract filename from url
const options = {
    url: urls[i],
    dest: `${__dirname}/../public/${zipName}/${zipName}/${fileName}`
    //Path of your zip file
}
Download.image(options)
        .then((filename) => {
            promiseArr.push(filename) //If we want to return promise
        })

sjkhderhkjwe

  zipFolder(`${__dirname}/../public/${zipName}/`, //path of folder
           `${__dirname}/../public/${zipName}.zip`, //where zip made
         async (err) => {
            if (err) {
                thorw new Error(err)
            } else {

                const urls = `${__dirname}/../public/${zipName}.zip`
                //const zipUrl = await uploadZipToAWS(zipName, urls)
                // Upload zip or move zip to front End 
                cmd.run(`rm -rf ${__dirname}/../public/${zipName}/`)
                //Remove this zip from server
                cmd.run(`rm -rf ${__dirname}/../public/${zipName}.zip`)
                //Remove this zip from server
               //Return back url
            }
        })

Пожалуйста, позаботьтесь о пути (__dirname).Установите модули на стороне сервера.И управлять кодом на основе ваших требований.

Отправьте обратный URL-адрес (путь) почтового индекса на внешний интерфейс и получите доступ к нему или сделайте его доступным для загрузки в браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...