首页 > 解决方案 > 将多个文件上传到 Amazon S3

问题描述

我需要有关如何在 Amazon S3 上上传多个文件的帮助。所以基本上我有三个用于文件上传的输入字段,两个输入将拍摄 10-20 张图片,最后一个输入只有一张图片,并在提交表单时将它们上传到 Amazon S3。

我用于上传图片的表单:

在此处输入图像描述

我有一个存储桶和所有东西,我需要某种将多个图像上传到 Amazon S3 的解决方案。

我使用 PHP 作为我的后端,现在,提交表单时,图像存储在主机上。但是我每个月都会上传超过 150gb 的图片,我需要 S3 来托管这些图片。

当我将表单与 Amazon S3 连接并尝试上传多个图像时,我收到此消息“POST 要求每个请求仅上传一个文件。”。

标签: phpamazon-web-servicesamazon-s3uploading

解决方案


这是 NodeJS 代码,它将让您了解如何上传所有文件,然后在上传完成后将响应发送回 UI。

我正在使用 Promise 和 promise.all() 方法来解决所有的 Promise。

我还在为 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();
    }

推荐阅读