IT

S3 버킷에있는 객체는 어떻게 알 수 있습니까?

lottoking 2020. 7. 12. 09:05
반응형

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

설명서를 참조하십시오


이 오래된 질문 S3 웹 콘솔이 "크기 가져 오기 오기 오기"옵션을 간편하고 간편합니다.

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

다음을 제공합니다.

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


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

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

그런 다음 Linux에서는 파일에서 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 지표를 사용하여 각 버킷의 정확한 수를 확인할 수 있습니다. 버킷을 선택할 때 Cloudwatch 지표


AWS 결제, 보고서, AWS 사용 보고서로 이동합니다. Amazon Simple Storage Service를 선택한 다음 Operation StandardStorage를 선택합니다. 그런 다음 각 버킷의 항목 수를 사용할 수있는 StorageObjectCount의 UsageType을 포함하는 CSV 파일을 다운로드 할 수 있습니다.


s3cmd에서 다음 명령을 실행하기 만하면 (Ubuntu 시스템에서).

s3cmd ls -r s3://mybucket | wc -l

api는 1000 단위로 목록을 반환합니다. IsTruncated 속성을 확인하여 더 많은 항목이 있는지 확인합니다. 있는 경우 다른 호출을 수행하고 다음 호출에서 Marker 속성으로받은 마지막 키를 전달해야합니다. 그런 다음 IsTruncated가 거짓이 될 때까지 이와 같이 계속 반복합니다.

자세한 내용은이 Amazon 문서를 참조하십시오. 다중 페이지 결과 반복


하지만 여전히 관련이 있습니다. GUI 기반 도구 (즉, 코드 없음)를 사용하여 파일 수를 원했습니다. S3와의 드래그 앤 드롭 전송을 위해 이미 3Hub라는 도구를 사용하고 있습니다. 특정 버킷에 얼마나 많은 파일이 있는지 알고 싶었습니다 (청구로 인해 버킷별로 분류되지 않습니다).

So, using 3Hub, 
- list the contents of the bucket (looks basically like a finder or explorer window)
- go to the bottom of the list, click 'show all'
- select all (ctrl+a)
- choose copy URLs from right-click menu
- paste the list into a text file (I use TextWrangler for Mac) 
- look at the line count  

버킷에 20521 개의 파일이 있고 1 분 내 파일 수를 계산했습니다.


실제로 Amazon 특정 API가 없기 때문에 API는 계산을 제공하지 않습니다. 목록 내용을 실행하고 반환 된 결과 수를 계산하기 만하면됩니다.


Scalablelogic.com 의 python 펼쳐보기를 사용했습니다 (카운트 로깅에 추가). 훌륭하게 일했습니다.

#!/usr/local/bin/python

import sys

from boto.s3.connection import S3Connection

s3bucket = S3Connection().get_bucket(sys.argv[1])
size = 0
totalCount = 0

for key in s3bucket.list():
    totalCount += 1
    size += key.size

print 'total size:'
print "%.3f GB" % (size*1.0/1024/1024/1024)
print 'total count:'
print totalCount

Windows에서 AWS CLI를 사용하는 경우 * nix Measure-Object와 PowerShell에서 사용 하여 총 파일 수를 수 있습니다 wc -l.

PS C:\> aws s3 ls s3://mybucket/ --recursive | Measure-Object

Count    : 25
Average  :
Sum      :
Maximum  :
Minimum  :
Property :

도움이 되셨기를 바랍니다.


s3 콘솔의 "관리"탭으로 이동 한 다음 "메트릭"을 클릭하면 총 개수와 내역을 쉽게 얻을 수 있습니다. 탭의 스크린 샷


3Hub 가 중단되었습니다. 더 나은 솔루션이 있습니다. 전송 (Mac 전용)을 다음 버킷에 연결 Show Item Count하고 View메뉴 에서 선택하기 만하면 .


http://s3browser.com/ 에서 s3 브라우저를 다운로드하여 수 있습니다 . 중앙 오른쪽 모서리에서 버킷을 선택하면 버킷의 파일 수를 볼 수 있습니다. 그러나 현재 버전에서는 표시되는 것이 표시됩니다.

Gubs


가장 쉬운 방법은 개발자 콘솔을 사용하는 것입니다. 예를 들어 Chrome을 사용하는 경우 개발자 도구를 선택하면 다음을 볼 수 있습니다. 280-279 + 1 = 2와 같은 일치 항목을 찾아 계산하거나 수행 할 수 있습니다.

...


AWS CLI의 명령 줄에서 ls plus --summarize. 모든 항목의 목록과 특정 버킷의 총 문서 수를 제공합니다. 하위 버킷을 포함하는 버킷으로 시도하지 않습니다.

aws s3 ls "s3://MyBucket" --summarize

시간이 조금 걸리지 만 (16 + K 문서를 사용하는 데 약 4 분 걸림) 한 번에 1K를 세는 것보다 빠 사용합니다.


S3 클래스 스토리지 분석은 어떻습니까 -API는 물론 콘솔에서 얻을 수 있습니다 -https : //docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html


나는 S3 브라우저 도구가 매우 사용자임을 발견 한 파일과 폴더 및 총 개수와 모든 폴더의 크기를 재귀 적으로 제공합니다.

다운로드 링크 : https://s3browser.com/download.aspx


gsutil du(예, Google Cloud 도구) 로도 수행 할 수 있습니다.

gsutil du s3://mybucket/ | wc -l

이 cli 명령을 실행하여 버킷 또는 특정 폴더의 총 파일 수를 얻을 수 있습니다.

전체 버킷 스캔

aws s3api list-objects-v2 --bucket testbucket | grep "Key" | wc -l
aws s3api list-objects-v2 --bucket BUCKET_NAME | grep "Key" | wc -l

이 명령을 사용하여 세부 정보를 얻을 수 있습니다.

aws s3api list-objects-v2 --bucket BUCKET_NAME

특정 폴더 스캔

aws s3api list-objects-v2 --bucket testbucket --prefix testfolder --start-after testfolder/ | grep "Key" | wc -l

aws s3api list-objects-v2 --bucket BUCKET_NAME --prefix FOLDER_NAME --start-after FOLDER_NAME/ | grep "Key" | wc -l

파일을 특정 난 웬지- .jpg이미지를 말하면 다음을 수행 할 수 있습니다.

aws s3 ls s3://your_bucket | grep jpg | wc -l

csv 파일의 객체 목록을 제공하는 Amazon S3 인벤토리를 사용할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/2862617/how-can-i-tell-how-many-objects-ive-stored-in-an-s3-bucket

반응형