这里是 NodeJS 代码,可以让您了解如何上传所有文件,然后在上传完成后向 UI 发送响应。
我使用了 Promises 和 promise.all() 方法,它将解决所有 Promises。
我还使用了 Node.JS 的 multer,它处理我从 UI 接收到的文件。
app.post('/uploadMultipleFiles',upload.array('file', 10),function(req,res){
var promises=[];
for(var i=0;i<req.files.length;i++){
var file = req.files[i];
promises.push(uploadLoadToS3(file));
}
Promise.all(promises).then(function(data){
res.send('Uploadedd');
}).catch(function(err){
res.send(err.stack);
})
})
function uploadLoadToS3(ObjFile){
var params={
ACL :'public-read',
Body : new Buffer(ObjFile.buffer),
Bucket:'ascendon1',
ContentType:ObjFile.mimetype,
Key:ObjFile.originalname
}
return s3.upload(params).promise();
}
S3是高度可扩展和分布式的存储。
如果您在本地计算机上有这些图像,您可以简单地使用
aws s3 sync local_folder s3://bucket_name/
https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
CLI会负责同步数据。
您还可以通过配置设置在CLI上配置所需的并行度。
https://docs.aws.amazon.com/cli/latest/topic/s3-config.html
如果需要持续进行数据移动,也可以通过编程方式执行此操作。
编辑1:
UI一次只能上传一个文件。
您可以通过JavaScript对它们进行排序并逐个上传。
如果您想将其带到后端,则可以这样做,
https://w3lessons.info/2013/09/06/jquery-multiple-file-upload-to-amazon-s3-using-php/
希望这可以帮助您。