AWS S3 Nodejs: получение объектов s3.listObject и присвоение объекту проблемы - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь получить все объекты в папке, хранящейся в моем контейнере S3.

Я пробовал следующее:

const folders = s3.listObjects(params).promise();

Это работает, но проблема в том, что он возвращает только до 1000 папок, а не для всех папок.

Там eachPage функция, которую я могу добавить к s3.listObjects(params), например:

    const folders = s3.listObjects(params).eachPage((err, data) => {
      if (err) console.log(err, err.stack);
      if (data && data.CommonPrefixes) {
        return data.CommonPrefixes
      }
    }

Но она не назначает ее папкам, только console.log, вместо того, чтобы возвращать ее, работает.

Я также пытался добавить new Promise, но он разрешается только для первой итерации страницы.

function getCommonPrefixes(params) {
  return new Promise((resolve, reject) => {
    s3.listObjects(params).eachPage((err, data) => {
      if (err) reject(err, err.stack);
      if (data && data.CommonPrefixes) {
        resolve(data.CommonPrefixes)
      }
    });
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...