簡體   English   中英

將多個文件上傳到 Amazon S3

[英]Uploading multiple files to Amazon S3

我需要有關如何在 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();
    }

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/

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM