2016-09-08 5 views
2

Я пытаюсь найти способ разрешить пользователю в моем приложении Meteor нажать кнопку и загрузить несколько файлов, к которым у них есть доступ (которые хранятся в S3, используя Пакет Slingshot).Как создать ZIP-файл S3-файлов в Meteor

Моя первая идея состояла в том, чтобы открыть каждый файл на новой вкладке в браузере, но быстро увидев, что некоторые браузеры не позволяют открывать несколько новых вкладок и видеть их как всплывающие окна.

Я видел пакет JSZip, и я думаю, что я понимаю, как создать ZIP файл ОК с помощью основного текста вставляет

var zip = new JSZip(); 
zip.file("Hello.txt", "Hello World\n"); 
var img = zip.folder("images"); 
img.file("smile.gif", imgData, {base64: true}); 
var content = zip.generate({type:"blob"}); 

, но я меньше уверен в том, как создать ZIP-файл из различных S3 urls Я передаю его.

Есть ли у кого-нибудь указатели на то, как добавить эти удаленные файлы в ZIP или, возможно, даже разрешить браузерм разрешать несколько загрузок?

Большое спасибо

ответ

1

Метеор поддерживает НПЕ пакеты и вы можете использовать s3-zip пакет для загрузки почтового индекса набора файлов.

использование Пример:

var s3Zip = require('s3-zip'); 
var fs = require('fs'); 

var region = 'bucket-region'; 
var bucket = 'name-of-s3-bucket'; 
var folder = 'name-of-bucket-folder/'; 
var file1 = 'Image A.png'; 
var file2 = 'Image B.png'; 
var file3 = 'Image C.png'; 
var file4 = 'Image D.png'; 

var output = fs.createWriteStream(__dirname + '/use-s3-zip.zip'); 

s3Zip 
    .archive({ region: region, bucket: bucket}, folder, [file1, file2, file3, file4]) 
    .pipe(output); 

Ссылка на этот пакет: s3-zip

Дополнительные ресы:

  1. Installing npm package in Meteor
  2. Using npm package in Meteor

Использование пакетов npm напрямую будет работать для метеор 1.3 и выше. Для более низких версий используйте this package

+0

Большое спасибо Ankit, я взгляну на это! –

+0

Добро пожаловать! Дайте мне знать, если это сработает. – Ankit