Поиск и подсчет общего количества экземпляров определенного шаблона в корзине s3 без загрузки файла

Мне нужно посчитать количество строк с соответствующими шаблонами в сегментах s3. Я использую команду -:

s3cmd ls --recursive s3://mys3.com/bucket1/ | awk '{print $4}' | grep '.lzo' | xargs -I@ s3cmd get @ - | zgrep 'my-pattern-of-interest-1' |  zgrep 'my-pattern-of-interest-2'|wc -l

но это все равно загружает файлы физически, есть ли внешняя утилита (например, с boto), где я могу сделать то же самое, но без физической загрузки файла? Мне нужно тщательно сканировать данные за 4-5 месяцев, поэтому я хочу избежать загрузки любой ценой.

1 ответ

На самом деле нет никакого способа проанализировать содержимое объектов в S3 без получения содержимого объектов. Вы можете запустить один или два экземпляра EC2 и выполнить там обработку, чтобы вам не приходилось копировать данные на локальный компьютер. Это, безусловно, будет быстрее. В дальнейшем вы можете использовать AWS Lambda для обработки всякий раз, когда новые файлы загружаются в корзину. Но я не знаю, как заставить Lambda обрабатывать все существующие объекты в S3.

Другие вопросы по тегам