2014-09-21 7 views
7

मैं नोडजेज़ का उपयोग कर रहा हूं और एक समय में कई ऑब्जेक्ट्स को हटाने की कोशिश कर रहा हूं। लेकिन किसी कारण से, किसी भी त्रुटि को वापस न करने के बावजूद, ऑपरेशन अपेक्षित काम नहीं करता है (फाइलें हटाई नहीं जा रही हैं)।अमेज़ॅन s3 deleteObjects nodejs - यह काम नहीं कर सकता

s3.deleteObjects({ 
    Bucket: 'myprivatebucket/some/subfolders', 
    Delete: { 
     Objects: [ 
      { Key: 'nameofthefile1.extension' }, 
      { Key: 'nameofthefile2.extension' }, 
      { Key: 'nameofthefile3.extension' } 
     ] 
    } 
}, function(err, data) { 

    if (err) 
     return console.log(err); 

    console.log('success'); 

}); 

तो मैं फ़ाइलों पर पुनरावृति, और s3.deleteObject विधि का उपयोग करने का प्रयास करें तो यह बहुत अच्छा काम करता है: यहाँ कोड है।

मैंने अपने उपफोल्डर (जैसे 'myprivatebucket') के बिना बाल्टी को निर्दिष्ट करने का भी प्रयास किया लेकिन मुझे फिर से कोई परिणाम नहीं मिला।

इस बात को कैसे कामया जाए इस पर कोई विचार है? मैं नोड संस्करण का उपयोग कर रहा हूं: 0.10.32 और aws 2.0.17 होना चाहिए।

उत्तर

14

ठीक है अंत में मैंने समस्या का समाधान किया है।

फ़ाइलों को डालने पर, मैं बाल्टी नाम में तथाकथित उप-फ़ोल्डर शामिल था। उदाहरण के लिए:

{ Bucket: 'myprivatebucket/some/subfolders', Key: 'nameofthefile1.extension' } 

यह स्पष्ट रूप से गलत है और इससे बचा जाना चाहिए। सही उपयोग के मामले इस प्रकार है:

{ Bucket: 'myprivatebucket', Key: 'some/subfolders/nameofthefile1.extension' } 

इस तरह आइटम डालने के बाद, सिर्फ एक ही बाल्टी और कुंजी का उपयोग की वस्तुओं को हटाने के लिए और यह काम करेगा! कम से कम, मेरे लिए यह काम किया!

+0

धन्यवाद! अंत में मैं बाल्टी से फाइलों को हटा सकता हूँ! – xneojal

संबंधित मुद्दे