我需要返回s3Url数组。如何返回s3Url数组并建议我还有其他最佳方法将数据上传到s3并返回s3Url
exports.s3Media = fileName => {
let s3Url = [];
(async () => {
for (let i = 0; i < 6; i++) {
await fs.readFile(`${fileName[i]}`, (err, data) => {
if (err) throw err;
const params = {
Bucket: `research-1`,
Key: fileName[i],
Body: JSON.stringify(data, null, 2)
};
s3.upload(params, function(s3Err, data) {
if (s3Err) throw s3Err;
s3Url.push(data.location);
});
});
}
return s3Url;
})();
};
答案 0 :(得分:0)
您的代码还有更多问题。您没有以正确的方式使用Async / Await。
看看异步/等待:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
如果要使用Async / Await,则必须使用readFile(),请在此处查看以下答案:reading file with ES6 promises
为什么要在s3Media中使用自调用fn,也许您可以使整个fn异步(这将返回一个承诺)
退货位置不正确
自行挖一点,您便会到达那里。希望对您有所帮助。