我创建了2个功能,一个用于上传一个图像,另一个用于上传多个图像。
在上传多张图片时,上传一张图片对我来说工作正常,这些图片被上传到S3,然后我尝试将每个图片路径推送到一个数组,但是当我返回数组时,它为空
if(message.guild.owner === message.member)
{
/* Code here */
}
我这样调用函数:
module.exports = {
async uploadOneFile(image) {
const params = {
Key: moment().format('YMMDDHHmmss') + '-' + image.upload.name,
Bucket: config.get("AwsConfig.bucketName"),
Body: image.upload.data,
ContentType: image.upload.mimetype,
ACL: 'public-read-write'
};
await s3.putObject(params).promise();
return baseURL + params.Key;
},
uploadMultipleFiles(images) {
const imagesPath = [];
images.upload.map(async (image) => {
const params = {
Key: moment().format('YMMDDHHmmss') + '-' + image.name,
Bucket: config.get("AwsConfig.bucketName"),
Body: image.data,
ContentType: image.mimetype,
ACL: 'public-read-write'
};
await s3.putObject(params).promise();
imagesPath.push(baseURL + params.Key);
});
return imagesPath;
}};
在控制台输出中,我收到[]
请帮助。
答案 0 :(得分:0)
也许尝试在地图上返回字符串并将地图返回值分配给imagesPath
数组?
像这样:
uploadMultipleFiles(images) {
const imagesPath = [];
imagesPath = images.upload.map(async (image) => {
const params = {
Key: moment().format('YMMDDHHmmss') + '-' + image.name,
Bucket: config.get("AwsConfig.bucketName"),
Body: image.data,
ContentType: image.mimetype,
ACL: 'public-read-write'
};
await s3.putObject(params).promise();
return Promise.resolve(baseURL + params.Key);
});
return imagesPath;
}