【发布时间】:2019-01-27 01:12:23
【问题描述】:
我对如何进行有点困惑。我正在使用存档(节点 js 模块)作为将数据写入 zip 文件的一种方式。目前,当我写入文件(本地存储)时,我的代码正在运行。
var fs = require('fs');
var archiver = require('archiver');
var output = fs.createWriteStream(__dirname + '/example.zip');
var archive = archiver('zip', {
zlib: { level: 9 }
});
archive.pipe(output);
archive.append(mybuffer, {name: ‘msg001.txt’});
我想修改代码,使存档目标文件成为 AWS S3 存储桶。查看代码示例,我可以在创建存储桶对象时指定存储桶名称和键(和正文),如下所示:
var s3 = new AWS.S3();
var params = {Bucket: 'myBucket', Key: 'myMsgArchive.zip' Body: myStream};
s3.upload( params, function(err,data){
…
});
Or
s3 = new AWS.S3({ parms: {Bucket: ‘myBucket’ Key: ‘myMsgArchive.zip’}});
s3.upload( {Body: myStream})
.send(function(err,data) {
…
});
关于我的 S3 示例,myStream 似乎是一个可读流,我很困惑如何使它工作,因为archive.pipe 需要一个可写流。这是我们需要使用直通流的地方吗?我找到了一个示例,其中有人创建了传递流,但该示例太简洁而无法获得正确理解。我指的具体例子是:
如果有人可以给我任何帮助,我们将不胜感激。谢谢。
【问题讨论】:
标签: javascript node.js amazon-s3 archive