【发布时间】:2018-10-10 16:04:44
【问题描述】:
const AWS = require("aws-sdk");
const s3 = new AWS.S3();
function getAttachments(file, bucket) {
var paramsArray = [];
var attachmentArray = [];
for (var a = 0; a < file.length; a++) {
paramsArray.push({
Bucket: bucket,
Key: file[a]
});
}
paramsArray.map(x = > s3.getObject(x, function (err, data) {
if (err) {
console.log(err);
}
attachmentArray.push({
filename: x.Key,
content: data.Body
});
console.log(attachmentArray)
})
)
}
var attachments = ['a.doc', 'b.doc', 'c.doc', 'd.doc', 'e.doc']
getAttachments(attachments,
'exampleBucket')
我想记录一个对象数组,每个对象的键作为文件名,缓冲区字符串作为内容。但是,在此示例中,我记录了附件数组中每个元素的大小增加的多个数组。
这些格式正确,例如:[{filename: a.doc, content: 'Buffer String'}],但我只想要一个数组,其中包含以该格式返回的 5 个对象。
谁能告诉我怎么做?
【问题讨论】:
-
你能举例说明你现在得到了什么吗?
-
你的代码很乱……你为什么要创建变量
attachmentsToSend?这是不必要的。 -
是这样的 = [{filename: 'a.doc', bufferString}], [{filename: a.doc, content: bufferString}, {filename: 'b.doc', content: bufferString}], [{filename: a.doc, content: bufferString}, {filename: 'b.doc', content: bufferString}, {filename: 'c.doc', content: bufferString}] 等等.
-
对不起,我很快就从别的东西上改编了它,所以我可以在这里问这个问题,我还没有这么有经验。
标签: javascript arrays node.js loops amazon-s3