How to determine if object exists AWS S3 Node.JS sdk

后端 未结 8 1560
梦毁少年i
梦毁少年i 2020-12-13 03:39

I need to check if a file exists using AWS SDK. Here is what I\'m doing:

var params = {
    Bucket: config.get(\'s3bucket\'),
    Key: path
};

s3.getSignedU         


        
8条回答
  •  天命终不由人
    2020-12-13 03:59

    Promise.All without failure Synchronous Operation

    var request = require("request");
    var AWS = require("aws-sdk");
    
    AWS.config.update({
        accessKeyId: "*******",
        secretAccessKey: "***********"
    });
    
    
    const s3 = new AWS.S3();
    
    
    var response;
    
    function initialize(bucket,key) {
        // Setting URL and headers for request
        const params = {
            Bucket: bucket,
            Key: key
        };
        // Return new promise 
        return new Promise(function(resolve, reject) {
            s3.headObject(params, function(err, resp, body) {  
                if (err) {  
                    resolve(key+"/notfound");
                } else{
                    resolve(key+"/found");
                }
              })
        })
    }
    
    function main() {
    
        var foundArray = new Array();
        var notFoundArray = new Array();
        var prefix = 'abc/test/';
        var promiseArray = [];
        try{
        for(var i=0;i<10;i++)
        {
            var key = prefix +'1234' + i;
            console.log("Key : "+ key);
            promiseArray[i] = initialize('bucket',key);
            promiseArray[i].then(function(result) {
                console.log("Result : " + result);
                var temp = result.split("/");
                console.log("Temp :"+ temp);
                if (temp[3] === "notfound")
                {
                    console.log("NOT FOUND");
                }else{
                    console.log("FOUND");
                }
    
            }, function(err) {
                console.log (" Error ");
            });
        }
    
        Promise.all(promiseArray).then(function(values) {
            console.log("^^^^^^^^^^^^TESTING****");
          }).catch(function(error) {
              console.error(" Errro : "+ error);
          });
    
    
    
    
    }catch(err){
        console.log(err);
    }
    
    
    }
    
    main();
    

提交回复
热议问题