簡體   English   中英

使用Node.js從AWS S3下載多個文件時出錯

[英]Error while downloading multiple files from AWS S3 using Nodejs

嘗試使用以下代碼段從AWS s3下載多個文件時,出現錯誤“文件下載失敗,結束后寫入錯誤”。

有人可以幫我找出錯誤的根本原因嗎?如果有人可以提出解決方案也很好

如果只需要下載一個文件,則下面的代碼可以正常工作

var AWS = require('aws-sdk');
var fs = require('fs')

module.exports.download = function (req, res) {

var S3_BUCKET = 'mybucketname'
var s3 = new AWS.S3({
    accessKeyId: process.env.ACCESSKEY,
    secretAccessKey: process.env.SECRETKEY,
    region: process.env.REGION
});

var os = require('os');
var filenames = "file1.jpg,file2.jpg"

var str_array = filenames.split(','); 
for (var i = 0; i < str_array.length; i++) {
    var filename = str_array[i].trim();

    localFileName = os.homedir() + "\\" + "Downloads" + "\\" + filename,

    file = fs.createWriteStream(localFileName);
    s3.getObject({
        Bucket: S3_BUCKET,
        Key: filename
    })
    .on('error', function (err) {
        res.end("File download failed with error " + err.message);            
    })
    .on('httpData', function (chunk) {
        file.write(chunk);
    })
    .on('httpDone', function () {
        file.end();
    })
    .send();
}
  res.end("Files have been downloaded successfully")
 }

最好使用pipe功能,而不是手動處理它。

s3.getObject(options)
    .createReadStream()
    .on('error', e => ...)
    .pipe(file)
    .on('error', e => ...);

暫無
暫無

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

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