2014-09-21 103 views
7

我正在使用nodejs並試圖一次刪除多個對象。但由於某種原因,儘管沒有返回任何錯誤,但該操作無法按預期工作(文件未被刪除)。下面是代碼:amazon 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 2016-01-25 22:41:04