[file] S3 버킷에 저장된 객체 수를 어떻게 알 수 있습니까?

내가 빠진 것이 아닌 한, 내가 본 API 중 어느 것도 S3 버킷 / 폴더 (접두사)에 얼마나 많은 객체가 있는지 알려주지 않습니다. 수를 얻는 방법이 있습니까?



답변

당신이 아니면 방법은 없습니다

  1. 1000 단위로 모두 나열하십시오 (이는 느리고 대역폭이 빠를 수 있습니다-아마존은 XML 응답을 압축하지 않는 것 같습니다).

  2. S3에서 계정에 로그인하고 계정-사용으로 이동하십시오. 청구 부서가 얼마나 많은 객체를 저장했는지 알고있는 것 같습니다!

모든 개체 목록을 다운로드하기 만하면 5 천만 개의 개체가 저장되어있는 경우 실제로 시간과 비용이 소요됩니다.

사용량 데이터에있는 StorageObjectCount에 대한이 스레드 도 참조하십시오 .

몇 시간이 지난 경우에도 최소한 기본 사항을 얻는 S3 API가 좋습니다.


답변

AWS CLI 사용

aws s3 ls s3://mybucket/ --recursive | wc -l

또는

aws cloudwatch get-metric-statistics \
  --namespace AWS/S3 --metric-name NumberOfObjects \
  --dimensions Name=BucketName,Value=BUCKETNAME \
              Name=StorageType,Value=AllStorageTypes \
  --start-time 2016-11-05T00:00 --end-time 2016-11-05T00:10 \
  --period 60 --statistic Average

참고 : 위의 cloudwatch 명령은 일부는 작동하지만 다른 기능은 작동하지 않는 것 같습니다. 여기에서 논의하십시오 : https://forums.aws.amazon.com/thread.jspa?threadID=217050

AWS 웹 콘솔 사용

클라우드 워치의 측정 항목 섹션 을 보면 대략 수의 객체가 저장됩니다.
여기에 이미지 설명을 입력하십시오

약 5 천만 개의 제품이 있으며 사용하는 데 1 시간 이상이 걸렸습니다. aws s3 ls


답변

버킷 요약 정보 (예 : 객체 수, 총 크기) --summarize를 포함 하는 스위치가 있습니다 .

다음은 AWS cli를 사용한 정답입니다.

aws s3 ls s3://bucketName/path/ --recursive --summarize | grep "Total Objects:"

Total Objects: 194273

설명서를 참조하십시오


답변

이것은 오래된 질문이지만 2015 년에 피드백이 제공되었지만 S3 웹 콘솔이 “크기 가져 오기”옵션을 활성화 했으므로 훨씬 간단합니다.

여기에 이미지 설명을 입력하십시오

다음을 제공합니다.

여기에 이미지 설명을 입력하십시오


답변

s3cmd 명령 줄 도구 를 사용하면 특정 버킷의 재귀 목록을 가져 와서 텍스트 파일로 출력 할 수 있습니다.

s3cmd ls -r s3://logs.mybucket/subfolder/ > listing.txt

그런 다음 리눅스에서는 파일에서 wc -l을 실행하여 줄 수를 계산할 수 있습니다 (객체 당 한 줄).

wc -l listing.txt


답변

S3 API를 사용하는 쉬운 솔루션이 있습니다 (AWS cli에서 사용 가능).

aws s3api list-objects --bucket BUCKETNAME --output json --query "[length(Contents[])]"

또는 특정 폴더의 경우 :

aws s3api list-objects --bucket BUCKETNAME --prefix "folder/subfolder/" --output json --query "[length(Contents[])]"


답변

s3에 대한 AWS 클라우드 워치 지표를 사용하여 각 버킷의 정확한 수를 확인할 수 있습니다.
버킷을 선택할 때 Cloudwatch 지표