首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取.zip,然后使用Node.js将内容存储在S3中

问提取.zip,然后使用Node.js将内容存储在S3中
EN

Stack Overflow用户
提问于 2012-10-27 21:50:15
回答 1查看 2.7K关注 0票数 1

大多数关于NodeJS、S3和Zip的问题都与我想要做的相反。上传一个压缩包,并将文件解压缩到S3。

我有一个在亚马逊EC2实例上运行的快速应用程序,带有Node.JS,它通过POST请求接受文件上传。其目的是上传一个充满图片的压缩文件,提取它们,并将每个单独的图片放在亚马逊S3上。

我正在使用express.js接受发布的文件,并且我一直在使用AdmZip来读取上传的压缩文件。使用AdmZip,我可以将压缩文件解压缩到服务器磁盘,然后循环遍历临时目录中的每个解压缩图像,然后将其发送到亚马逊S3,但这似乎非常低效。我读过很多关于从S3到Node的流式文件和动态压缩文件的文章。我想我想知道的是,这是否有可能发生逆转。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-28 02:37:54

我不认为你能在S3上解压这个文件。你必须将压缩包保存在/temp中,解压并上传到s3。

试试下面这样的东西:

代码语言:javascript
复制
app.post('/upload', function (req, res, next) { 

  myZip = req.files.myZipfile

  var zip = new require('node-zip')(myZip, {base64: false, checkCRC32: true});

  knox = require('knox');
  s3 = knox.createClient({"key": "", "secret": "", "bucket": ""})


  // You might need to try something like async here to throttle the putFile command
    for (var i = zip.files.length - 1; i >= 0; i--) { 

        s3.putFile(zip.files[i], path.basename(zip.files[i]), function(err, res) {

        });
    };


});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13100746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档