2014-09-21 11 views
7

Tôi đang sử dụng nút lệnh và cố gắng xóa nhiều đối tượng cùng một lúc. Nhưng đối với một số lý do, mặc dù không trả lại bất kỳ lỗi nào, thao tác không hoạt động như mong đợi (các tệp không bị xóa). Đây là mã số:amazon s3 deleteObjects nodejs - không thể làm cho nó hoạt động

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'); 

}); 

Nếu tôi cố gắng lặp qua các tệp và sử dụng phương pháp s3.deleteObject thì phương pháp này hoạt động khá tốt.

Tôi cũng đã cố gắng chỉ định cho nhóm không có thư mục con của nó (như 'myprivatebucket') nhưng tôi không nhận được kết quả nào nữa.

Bất kỳ ý tưởng nào về cách làm cho điều này hoạt động? Tôi đang sử dụng phiên bản nút: 0.10.32 và aws nên là 2.0.17.

Trả lời

14

Cuối cùng tôi đã giải quyết được sự cố.

Khi chèn tệp, tôi đã bao gồm các thư mục con được gọi vào tên nhóm. Ví dụ:

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

Điều này rõ ràng là sai và nên tránh. Trường hợp sử dụng chính xác như sau:

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

Sau khi chèn các mục như thế này, chỉ cần sử dụng cùng một nhóm và các phím để xóa đối tượng và nó sẽ hoạt động! Ít nhất, đối với tôi nó đã làm việc!

+0

Cảm ơn bạn! Cuối cùng tôi có thể xóa các tập tin từ xô! – xneojal

Các vấn đề liên quan