Загрузите содержимое S3 в локальную временную папку с помощью Node.js - PullRequest
0 голосов
/ 06 сентября 2018

Добрый день

Как загрузить все содержимое из корзины S3 в локальную временную папку для дальнейшей обработки?

Спасибо!

1 Ответ

0 голосов
/ 10 сентября 2018

Ниже приведен код загрузки структуры Bucket в вашей локальной временной папке ...

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

var s3 = new AWS.S3
({
    accessKeyId:    <AccessKeyID>,      //REQUIRED
    secretAccessKey:<SecretAccessKey>   //REQUIRED
});

var params = 
{
    Bucket: <SourceBucket>              //REQUIRED
}

// CREATE A BUCKET SUBFOLDER
fs.mkdirSync(params.Bucket);
fs.mkdirSync(params.Bucket+ "/" + <FolderName>);

s3.listObjects({ Bucket: params.Bucket }, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else {   
    data.Contents.forEach(function(currentValue, index, array){

      // CHECK IF THE FILE ALREADY EXISTS
      fs.exists(params.Bucket + "/" + currentValue.Key, function(exists){

        if (exists)
        {
          console.log("Skipping: " + currentValue.Key);
        }
        else
        {
          console.log("Retrieving the file : " + currentValue.Key);
          s3.getObject({ Bucket: params.Bucket, Key: currentValue.Key }, function(err, data) {
            if (err) console.log(err, err.stack);
            else {
                    fs.writeFile(params.Bucket + "/" + currentValue.Key, data.Body, function(){
                    console.log("Finished downloading the file: " + currentValue.Key); 
                 });
            }
          });

        }

      });

    });

  }
});

Надеюсь, это полезно .. Прокомментируйте, пожалуйста Спасибо ..

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