Mil*_*vic 8 php uploading amazon-s3 amazon-web-services
我需要有关如何在 Amazon S3 上上传多个文件的帮助。所以基本上我有三个用于文件上传的输入字段,两个输入将拍摄 10-20 张图片,最后一个输入只有一张图片,并在提交表单时将它们上传到 Amazon S3。
我用于上传图片的表单:
我有一个存储桶和所有东西,我需要的是某种将多个图像上传到 Amazon S3 的解决方案。
我使用 PHP 作为我的后端,现在,提交表单时,图像存储在主机上。但是我每个月都会上传超过 150GB 的图片,我需要 S3 来托管这些图片。
当我将表单与 Amazon S3 连接并尝试上传多个图像时,我收到此消息“POST 需要每个请求只上传一个文件。”。
这是 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();
}
Run Code Online (Sandbox Code Playgroud)
S3 是高度可扩展的分布式存储。
如果您的机器本地有这些图像,您可以简单地使用
aws s3 同步 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/
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
18880 次 |
| 最近记录: |