gpt4 book ai didi

javascript - Node.js:如何从 url 将文件附加到 (archiverjs) zip

转载 作者:搜寻专家 更新时间:2023-10-31 23:38:11 24 4
gpt4 key购买 nike

我有一个包含一组幻灯片的对象。每张幻灯片都可以有一个媒体参数,其中包含图像或视频文件的 url 或者 youtube 或 vimeo 视频的链接。

我的目标是将幻灯片查看器压缩,并且在 zip 中我还必须有从 url 中获取的图像或视频文件。

要创建我目前正在使用的 zip Archiver它工作正常,但我不知道如何将媒体文件放入 zip(可能)而不先将它们写入文件系统。我想我必须使用流,因为 archiver.append() 可以将流作为第一个参数,但我不知道该怎么做。

我已经实现了一些代码来了解 url 是否指向文件,将文件的 url 写入数组(避免 youtube 或 viemo urls)。

zip 是这样创建的:

...
var urls_array = ["http://url1/file1.jpg", "http://url2/file2.png"]; //the array of urls I take the media files from

var zip = archiver('zip');
zip.pipe(res);

zip.directory(__dirname + '/../../zip/', 'slideshow');
zip.append( new Buffer( file ), { name: 'slideshow/assets/slides.json' });
zip.finalize();

我想我必须循环 url_array 并为每个 url 执行一个 http.get() 调用,但我不明白如何 。 pipe() zip 中的响应。

有没有人可以帮助我?不要犹豫,向我询问更多信息:)

提前谢谢你。

最佳答案

您应该使用 request 方法从远程 URL 创建一个流,作为第一个参数传递给 archiver 的 append 函数,如下所示:

for ( var slide in slides ) {
archive.append( request( slide.url ), { name: slide.name } );
}

参见 archiver.append 文档(https://archiverjs.com/docs/module-plugins_zip-Zip.html#append)

希望对您有所帮助。

关于javascript - Node.js:如何从 url 将文件附加到 (archiverjs) zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30685415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com