폴더의 항목 수로 재귀적 "aws s3 ls" 검색을 제한합니다.

폴더의 항목 수로 재귀적 "aws s3 ls" 검색을 제한합니다.

시나리오는 다음과 같습니다.

많은 수의 폴더와 하위 폴더를 재귀적으로 검색하고 ls 명령을 사용하여 결과를 로그 파일로 출력해야 하는데 폴더에 10개 이상의 개체가 포함되어 있으면 폴더 검색을 중지해야 합니까? 그 이유는 폴더에 10개 항목의 샘플이 있으면 해당 폴더에 무엇이 있는지 알 수 있고 일부 폴더에는 수만 개의 결과가 포함되어 있으므로 시간이 많이 절약되기 때문입니다.

왜 "ls"로 제한됩니까? S3를 검색 중이므로 aws s3 ls해당 명령이 aws s3 ls --summarize --recursive내 필요에 적합하므로 이제 폴더의 항목 수를 기준으로 검색을 제한하는 방법이 필요합니다.

aws s3api list-buckets 및 list-objects 등을 사용해 보았지만 --max-values ​​태그를 사용해도 내 요구 사항에 맞지 않습니다. 당신의 도움을 주셔서 감사합니다.

답변1

Emma Luo의 말이 맞습니다. "aws s3 ls"는 사람들이 수행하는 작업 유형(파일 나열)을 알 수 있도록 그런 식으로 이름이 지정되었습니다. 이는 실제로 ls 명령이 아니며 매우 피상적인 수준에서 동일한 작업을 수행하려고 하는 것뿐입니다.

원하는 작업을 수행하는 가장 좋은 방법은 boto3 API를 사용하여 스크립트를 작성하는 것입니다. s3.client.list_objects()에는 경로 내에서 검색을 제한하는 데 사용할 수 있는 MaxKeys 매개변수가 있습니다.

관련 정보