AWS S3 SDK: как получить имя файла из обратного вызова хода выполнения при загрузке нескольких файлов? - PullRequest
0 голосов
/ 02 мая 2018

Так что я использую AWS S3 Javascript SDK для загрузки нескольких файлов. Этот код ниже работает хорошо , но у меня есть одна проблема. function (evt) для прогресса вызывается асинхронно, и я не могу определить, к какому имени файла он был вызван. evt не включает имя файла. Есть ли способ узнать?

Как вывести имя файла на консоль (где я показываю >>> I NEED THE FILENAME HERE <<<)

for (var i = 0; i < files.length; i++) {
        var file = files[i];
        if (files[i]) {
            var params = {Key: file.name, ContentType: file.type, Body: file};
            bucket.upload(params).on('httpUploadProgress', function(evt) {
                console.log("Uploaded  "  + >>> I NEED THE FILENAME HERE <<< + " " + parseInt((evt.loaded * 100) / evt.total)+'%');
            }).send(function(err, data) {
                //alert("File uploaded successfully -- " + err);
            });
        }
    }

1 Ответ

0 голосов
/ 02 мая 2018

evt.key -> должен давать имя загружаемого файла ... !!!

Result of Evt

Отредактировано:

вот полный код, который я использую для управляемой загрузки

app.post('/uploadLargeFile',upload.array('file', 20),function(req,res){

    console.log("received File")
    var file = req.files;
    for(var i=0;i<req.files.length;i++){
        var file = req.files[i];
        uploadLargeFiles(file);
    }
})

function uploadLargeFiles(file){
    var params={
        ACL :'public-read',
        Body : new Buffer(file.buffer),
        Bucket:'ascendon1',
        ContentType:file.mimetype,
        Key:file.originalname
    }
    var managedUpload = new AWS.S3.ManagedUpload({
        params:params
    });
    managedUpload.on('httpUploadProgress', function(progress) {
        console.log(progress);
    });

    managedUpload.send(function(err, data) {
        console.log(err, data);
    });

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...