2014-09-21 4 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