Как ускорить фильтр объекта S3 Bucket - PullRequest
0 голосов
/ 21 февраля 2020

Я использую следующий код python для фильтрации необходимого префикса и шаблона, но из-за объема файлов в корзине слишком много времени для отображения результатов, а время ожидания веб-сервера истекло, я могу может ускорить процесс

my_list = []
my_bucket = s3.Bucket(bucket)
for line in my_bucket.objects.filter(Prefix=path):
     if re.search(SourceFilePattern, line.key):
          my_list.append(line.key)

1 Ответ

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

Вы можете использовать S3 Inventory , чтобы периодически создавать stati c CSV-подобный файл с метаданными объекта, а затем запускать свой код против него. Это будет быстрее, чем ожидание сетевого ввода-вывода для каждого вызова.

Если вы хотите обработать его в реальном времени - я sh и дать ответы от веб-сервера, я бы предпочел заранее заполнить какую-нибудь таблицу DynamoDB и запросить ее из процесса веб-сервера. Вы можете реагировать на события S3 Put и запускать лямбду, которая будет помещать данные в DynamoDB, если файл соответствует критериям.

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