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

Смежные вопросы