Хобрук: Ваш путь к мастерству в программировании

используя модуль архиватора со ссылками на скачивание онлайн

В приложении node я хочу загрузить zip-файл, содержащий PDF-файлы, загруженные с разных URL-адресов в Интернете (где, если я ввожу URL-адрес в браузер, он просто направляет меня на загрузку PDF-файла). Я использовал модуль архиватора, который задокументирован на github по адресу https://github.com/archiverjs/node-archiver, а официальная документация находится по адресу https://www.archiverjs.com/.

Я застрял в той части, где приведены следующие примеры добавления файлов в zip-файл.

// append a file from stream
var file1 = __dirname + '/file1.txt';
archive.append(fs.createReadStream(file1), { name: 'file1.txt' });

// append a file from string
archive.append('string cheese!', { name: 'file2.txt' });

// append a file from buffer
var buffer3 = Buffer.from('buff it!');
archive.append(buffer3, { name: 'file3.txt' });

// append a file
archive.file('file1.txt', { name: 'file4.txt' });

// append files from a sub-directory and naming it `new-subdir` within the archive
archive.directory('subdir/', 'new-subdir');

// append files from a sub-directory, putting its contents at the root of archive
archive.directory('subdir/', false);

// append files from a glob pattern
archive.glob('subdir/*.txt');

К сожалению, кажется, что просто вставка URL-адресов в первый параметр .append или .directory не работает - кто-нибудь знает, как я могу добавить загружаемые файлы (которые находятся в сети) в zip-файл?


Ответы:


1

конечно, используя download-pdf сначала что-то вроде этого

var download = require('download-pdf')
var fs = require('fs');
var archiver = require('archiver');
var output = fs.createWriteStream('./example.zip');
var archive = archiver('zip', {
    gzip: true,
zlib: { level: 9 } // Sets the compression level.
});

var pdf = "http://www.consejoconsultivoemt.cl/wp-content/uploads/2018/12 /Presentaci%C3%B3n-Lineamientos-Estrat%C3%A9gicos-de-Corfo.pdf"
var pdf2 = "https://www.biobiochile.cl/static/tarifas.pdf"

var options = {
    directory: "./files/",
    filename: "first.pdf"
}
var options2 = {
    directory: "./files/",
    filename: "second.pdf"
}

download(pdf, options, function (err) {
    if (err) throw err
    console.log("meow")
})

download(pdf2, options2, function (err) {
    if (err) throw err
    console.log("meow2")
})

archive.on('error', function (err) {
    throw err;
});

// pipe archive data to the output file
archive.pipe(output);

// append files
archive.file('./files/first.pdf', { name: 'first.pdf' });
archive.file('./files/second.pdf', { name: 'second.pdf' });

archive.finalize();
12.04.2020
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..