AWS S3 ListBuckets возвращает все сегменты - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть приложение TypeScript, которое перечисляет сегменты из aws -s3. Проблема в том, что мои учетные данные позволяют мне ТОЛЬКО взаимодействовать (читать / писать) с определенными c.

Вот пример:

ListBuckets возвращает ['bucket-1', 'bucket-2', 'bucket-3', 'bucket-4']

Но мои учетные данные / ACL позволяют мне ТОЛЬКО читать / писать с ['bucket-2', 'bucket-4']

Итак, как я могу перечислить ТОЛЬКО те сегменты, которые мне разрешены для чтения / записи?

Вот код, который у меня есть:

const localS3Object = new AWS.S3();
// ... the localS3Object is initialized with the secrets in here

localS3Object.listBuckets(function(err: AWS.AWSError, data) {
                if (err) {
                    resolve({
                        connected: false,
                        resources: undefined
                    });
                } else {
                    resolve({
                        connected: true,
                        resources: data.Buckets
                    });
                }
            });

1 Ответ

1 голос
/ 06 февраля 2020

К сожалению, нет действительно хорошего способа сделать то, что вы хотите сделать. Операция listBuckets (разрешение ListAllMyBuckets) является операцией "все или ничего". Лучшее, что вы можете сделать, - это отфильтровать блоки самостоятельно, возможно, попытавшись предпринять какое-то действие (возможно, listObjects) и выяснить, нет ли у вас ошибки прав доступа. Не элегантно, во что бы то ни стало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...