मैं अमेज़न S3 बाल्टी का आकार कैसे प्राप्त कर सकता हूं?


289

मैं अमेज़ॅन S3 बाल्टी के आकार (बाइट्स, और # आइटम में) को ग्राफ़ करना चाहता हूं और डेटा प्राप्त करने के लिए एक कुशल तरीके की तलाश कर रहा हूं।

S3cmd उपकरण का उपयोग कर कुल फ़ाइल आकार पाने के लिए एक तरीका प्रदान करते s3cmd du s3://bucket_nameहैं, लेकिन मैं पैमाने पर करने के बाद से यह लग रहा है यह हर फ़ाइल के बारे में डेटा को हासिल करेगा और अपने स्वयं के योग की गणना करता है की तरह की क्षमता के बारे में चिंतित हूँ। चूंकि अमेज़न जीबी-महीनों में उपयोगकर्ताओं से शुल्क लेता है, इसलिए यह अजीब लगता है कि वे इस मूल्य को सीधे उजागर नहीं करते हैं।

हालाँकि Amazon के REST API एक बाल्टी में आइटमों की संख्या लौटाता है, लेकिन s3cmd इसे उजागर नहीं करता है। मैं कर सकता था s3cmd ls -r s3://bucket_name | wc -lलेकिन यह हैक की तरह लगता है।

रूबी एडब्ल्यूएस :: एस 3 पुस्तकालय आशाजनक लग रहा था, लेकिन केवल बाल्टी वस्तुओं का # प्रदान करता है, न कि कुल बाल्टी आकार का।

क्या कोई किसी अन्य कमांड लाइन टूल या लाइब्रेरी (पेरल, पीएचपी, पायथन, या रूबी को पसंद करता है) जो इस डेटा को प्राप्त करने के तरीके प्रदान करता है?


मैंने बाल्टी के आकार का विश्लेषण करने के लिए एक उपकरण लिखा: github.com/EverythingMe/ncdu-s3
omribahumi

19
मुझे आश्चर्य है कि अमेज़ॅन अंतरिक्ष के लिए चार्ज करता है, लेकिन एस 3 पैनल द्वारा एस 3 बाल्टी द्वारा उठाए गए कुल आकार प्रदान नहीं करता है।
ल्यूक

मेरे लिए नीचे दिए गए अधिकांश जवाबों को बकेट के आकार को पुनः प्राप्त करने में काफी लंबा समय लगा, हालाँकि इस पाइथन लिपि में अधिकांश उत्तरों की तुलना में तेज़ था - slsmk.com/getting-the-size-of-an-s3-bateet-use -बोटो 3-फॉर-
एव्स

जवाबों:


168

AWS CLI अब उस --queryपैरामीटर का समर्थन करता है जो JMESPath अभिव्यक्ति लेता है ।

इसका अर्थ है कि आप list-objectsउपयोग करके sum(Contents[].Size)और दिए गए आकार की गणना कर सकते हैं length(Contents[])

यह नीचे के रूप में आधिकारिक AWS CLI का उपयोग करके चलाया जा सकता है और फरवरी 2014 में पेश किया गया था

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

21
बड़ी बाल्टियों (बड़ी # फ़ाइल्स) के लिए, यह बहुत धीमी गति से होता है। पायथन यूटिलिटी s4cmd "du" बिजली की तेजी से है:s4cmd du s3://bucket-name
ब्रेंट फॉस्ट

वह अजीब है। आपकी बाल्टी (उथले और वसा / गहरे और पतले) की समग्र रूपरेखा क्या है? ऐसा लगता s3cmdहै कि जैसा ओवरहेड होना चाहिए था AWS CLI। में कोड यह दिखाता s3cmd एक बाल्टी में एक निर्देशिका के लिए एक अनुरोध कर सकते हैं।
क्रिस्टोफर हैकेट

22
इसे मानव पठनीय प्रारूप में प्राप्त करने के लिए: aws s3api --profile PROFILE_NAME list-objects --bucket BUCKET_NAME --output json --query "[sum(Contents[].Size), length(Contents[])]" | awk 'NR!=2 {print $0;next} NR==2 {print $0/1024/1024/1024" GB"}'
संदीप

21
अब जब AWS क्लाउडवॉच एक "बकेटसाइबाइट्स" प्रति-बाल्टी मीट्रिक प्रदान करता है, तो यह अब सही समाधान नहीं है। नीचे देखें तौककौंक का जवाब।
cce

2
s4cmd duबहुत बढ़िया है, धन्यवाद @Brent Faust! छोटे नोट (संबंधित लोगों के लिए) जिन्हें आपको -rउप-निर्देशिकाओं के आकार के साथ-साथ जोड़ना होगा।
ग्रेग सैडेत्स्की

330

यह अब केवल आधिकारिक AWS कमांड लाइन क्लाइंट के साथ तुच्छ रूप से किया जा सकता है:

aws s3 ls --summarize --human-readable --recursive s3://bucket-name/

आधिकारिक दस्तावेज

यदि आप पूरी बाल्टी की गिनती नहीं करना चाहते हैं तो यह भी उपसर्ग को स्वीकार करता है:

aws s3 ls --summarize --human-readable --recursive s3://bucket-name/directory

23
यह सबसे अच्छा और अप-टू-डेट उत्तर है
टिम

2
सहमत, यह सबसे अच्छा जवाब है।
लुइस अर्तोला

24
यह कई फाइलों के साथ बाल्टी के लिए बहुत धीमा है क्योंकि यह मूल रूप से सारांश दिखाने से पहले बाल्टी में सभी वस्तुओं को सूचीबद्ध करता है, और इसमें यह @Christopher Hackett के उत्तर की तुलना में बहुत तेज नहीं है - इसके अलावा यह बहुत अधिक शोर है।
Guss

उसी बाल्टी के क्षेत्र के साथ EC2 उदाहरण पर लेटेंसी को बेहतर बनाने के लिए
रन करें

1
यह निर्देशिका ट्री में सभी व्यक्तिगत फ़ाइलों का आकार दिखाएगा। अगर मुझे निर्देशिका के लिए कुल आकार चाहिए तो क्या होगा?
क्रिस एफ

130

AWS कंसोल:

के रूप में जुलाई 2015 28 आप इस जानकारी को प्राप्त कर सकते हैं CloudWatch के माध्यम से । यदि आप GUI चाहते हैं, तो CloudWatch कंसोल पर जाएँ : (क्षेत्र चुनें>) मैट्रिक्स> S3

AWS सीएलआई कमांड:

यह यहां पोस्ट की गई कुछ अन्य कमांड्स की तुलना में बहुत तेज है, क्योंकि यह राशि की गणना करने के लिए व्यक्तिगत रूप से प्रत्येक फ़ाइल के आकार को क्वेरी नहीं करती है।

 aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time 2015-07-15T10:00:00 --end-time 2015-07-31T01:00:00 --period 86400 --statistics Average --region eu-west-1 --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=toukakoukan.com Name=StorageType,Value=StandardStorage

महत्वपूर्ण : आपको स्टोरेज टाइप और बकेटनेम दोनों को आयाम तर्क में निर्दिष्ट करना होगा अन्यथा आपको कोई परिणाम नहीं मिलेगा। आप सभी को बदलने की जरूरत है --start-date, --end-timeऔर Value=toukakoukan.com


यहाँ एक बैश स्क्रिप्ट है जिसका उपयोग आप निर्दिष्ट --start-dateऔर --end-timeमैन्युअल रूप से करने से बचने के लिए कर सकते हैं ।

#!/bin/bash
bucket=$1
region=$2
now=$(date +%s)
aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time "$(echo "$now - 86400" | bc)" --end-time "$now" --period 86400 --statistics Average --region $region --metric-name BucketSizeBytes --dimensions Name=BucketName,Value="$bucket" Name=StorageType,Value=StandardStorage

25
या में CloudWatch कंसोल : (चुनें क्षेत्र>) मेट्रिक्स> S3
हलील Özgür

3
यह अब तक का सबसे आसान और तेज उपाय है। दुर्भाग्य से उत्तर अभी भी केवल चौथे स्थान पर है।
luk2302

इसने 10 बाल्टी + वस्तुओं के साथ मेरी बाल्टी के लिए काम किया। लेकिन बैश स्क्रिप्ट में कुछ भी वापस नहीं आया, उसे GUI में जाना पड़ा)।
पेतह

1
यह भी ध्यान दिया जाना चाहिए कि आपको इस क्षेत्र को भी बदलना होगा
मेजिकमैन

मई 2018: स्क्रिप्ट त्रुटियांInvalid value ('1525354418') for param timestamp:StartTime of type timestamp
anneb

106

s3cmd यह कर सकता है:

s3cmd du s3://bucket-name


धन्यवाद। यहाँ कुछ समय है। एक बाल्टी पर जो एक s3ql डिडुप्लिकेटेड फाइल सिस्टम रखता है, जिसमें लगभग 33 जीबी डेटा का उपयोग करके एक मिलियन फाइलों के साथ, और लगभग 93000 s3 ऑब्जेक्ट्स में, s3cmd du को उत्तर की गणना करने में लगभग 4 मिनट लगते हैं। मुझे यह जानने की उत्सुकता है कि अन्य तरीकों के साथ तुलना कैसे की जाती है जैसे कि php यहाँ वर्णित है।
nealmcb

1
यह धीमा है क्योंकि S3 ListObjects API कॉल 1000 ऑब्जेक्ट्स के पृष्ठों में ऑब्जेक्ट लौटाता है। जैसा कि I / O अब तक सीमित कारक है, मुझे लगता है कि कोई भी समाधान 93000 वस्तुओं पर अपेक्षाकृत धीमा होगा।
डेविड स्नेबेल-कॉंट

11
s4cmd भी वही काम कर सकता है, जिसके परिणामस्वरूप S3 के एपीआई को मल्टी-थ्रेडिंग के अतिरिक्त लाभ के साथ परिणाम तेजी से गणना करने के लिए। उपकरण को हाल ही में अपडेट नहीं किया गया है, लेकिन इंटरनेट राहगीर को यह उपयोगी लग सकता है।
निक चम्मास

s4cmd सिर्फ मेरे लिए 0 रिटर्न देता है, और BotoClientError: Bucket names cannot contain upper-case characters when using either the sub-domain or virtual hosting calling format.अपरकेस कैरेक्टर्स वाली बकेट्स के लिए रिटर्न करता है ।
लक्की

22

यदि आप एक उपयोग रिपोर्ट डाउनलोड करते हैं , तो आप TimedStorage-ByteHrsफ़ील्ड के लिए दैनिक मानों को ग्राफ़ कर सकते हैं ।

यदि आप GiB में वह संख्या चाहते हैं, तो बस 1024 * 1024 * 1024 * 24(24 घंटे के चक्र के लिए GiB- घंटे) से विभाजित करें । यदि आप बाइट्स में संख्या चाहते हैं, तो बस 24 से विभाजित करें और ग्राफ़ को दूर करें।


19

आधिकारिक AWS s3 कमांड लाइन टूल का उपयोग करना:

aws s3 ls s3://bucket/folder --recursive | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'

यह एक बेहतर कमांड है, इसके --summarize --human-readable --recursiveबाद निम्नलिखित 3 पैरामीटर जोड़ें aws s3 ls--summarizeहालांकि आवश्यक नहीं है कि कुल आकार पर एक अच्छा स्पर्श देता है।

aws s3 ls s3://bucket/folder --summarize --human-readable --recursive

1
कृपया लिंक प्रदान करें जहां amazon वास्तव में यह बताता है। मैं इसे नहीं ढूँढ सकता।
लोबी



4
इस जवाब ने मेरे लिए सबसे अच्छा और सबसे तेज़ काम किया।
मिरो

2
सबसे अच्छा और सबसे तेज़ जवाब!
प्लैगटैग

11

s4cmd मैंने पाया सबसे तेज़ तरीका है (पायथन में लिखी एक कमांड-लाइन उपयोगिता):

pip install s4cmd

अब कई थ्रेड्स का उपयोग करके पूरे बाल्टी आकार की गणना करने के लिए:

s4cmd du -r s3://bucket-name

6
नहीं, s4cmd du s3://123123drinkबस बाल्टी के आकार को वापस नहीं करेंगे। बाल्टी का आकार प्राप्त करने के लिए आप पुनरावर्ती जोड़ते हैं -r, इस तरह: s4cmd du -r s3: // 123123drink
जॉर्ज चाल्हौब

1
हां, अच्छा बिंदु @BukLau ( -rभ्रम की स्थिति से बचने के लिए ऊपर उदाहरण के लिए जब लोग S3 पर नकली फ़ोल्डर का उपयोग कर रहे हैं)।
ब्रेंट फस्ट

6

मैंने इस धागे में पहले सूचीबद्ध S3 REST / कर्ल एपीआई का उपयोग किया और यह किया:

<?php
if (!class_exists('S3')) require_once 'S3.php';

// Instantiate the class
$s3 = new S3('accessKeyId', 'secretAccessKey');
S3::$useSSL = false;

// List your buckets:
echo "S3::listBuckets(): ";
echo '<pre>' . print_r($s3->listBuckets(), 1). '</pre>';

$totalSize = 0;
$objects = $s3->getBucket('name-of-your-bucket');
foreach ($objects as $name => $val) {
    // If you want to get the size of a particular directory, you can do
    // only that.
    // if (strpos($name, 'directory/sub-directory') !== false)
    $totalSize += $val['size'];
}

echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
?>

6

आप s3cmd उपयोगिता का उपयोग कर सकते हैं, जैसे:

s3cmd du -H s3://Mybucket
97G      s3://Mybucket/

5

तो एपीआई के माध्यम से चारों ओर ट्रोलिंग और कुछ समान प्रश्न खेल रहे हैं, S3 एक अनुरोध में एक बाल्टी की पूरी सामग्री का उत्पादन करेगा और इसे निर्देशिकाओं में उतरने की आवश्यकता नहीं है। तब परिणाम केवल विभिन्न XML तत्वों के माध्यम से योग की आवश्यकता होती है, और बार-बार कॉल नहीं करते हैं। मेरे पास एक नमूना बाल्टी नहीं है जिसमें हजारों आइटम हैं इसलिए मुझे नहीं पता कि यह कितना अच्छा होगा, लेकिन यह काफी सरल लगता है।


यह सबसे अच्छा विकल्प प्रतीत होता है। भविष्य में इस पोस्ट को अपडेट करेंगे अगर यह खराब हुआ तो मुझे कुछ और करने की जरूरत है। वह लाइब्रेरी जो कच्चे एपीआई परिणामों के लिए आसान पहुँच प्रदान करती है, यह PHP एक थी: undesign.org.za/2007/10/22/amazon-s3-php-class
हेटन

क्या यह केवल पहले 1000 वस्तुओं तक सीमित नहीं है?
चार्ली श्लिसेर

4

... थोड़ा देर से लेकिन, सबसे अच्छा तरीका मुझे AWS पोर्टल में रिपोर्टों का उपयोग करके मिला है। मैंने रिपोर्ट डाउनलोड करने और पार्स करने के लिए एक PHP वर्ग बनाया। इसके साथ आप प्रत्येक बाल्टी के लिए वस्तुओं की कुल संख्या, GB या बाइट में कुल आकार और अधिक प्राप्त कर सकते हैं।

इसे देखें और मुझे बताएं कि क्या मददगार था

AmazonTools


यह एक दिलचस्प समाधान है, हालांकि थोड़ा हैकिश। इसके बारे में चिंतित होने पर कि अगर / जब अमेज़ॅन अपनी साइट बदलता है, लेकिन मुझे यह कोशिश करनी पड़ सकती है कि एक बार मेरे पास पर्याप्त वस्तुएं हों तो दूसरा रास्ता बहुत धीमा हो जाता है। इस दृष्टिकोण का एक और लाभ यह है कि आप किसी भी एपीआई कॉल के लिए शुल्क नहीं लेते हैं।
गैरेट हेटन

। । । इसकी एक धारणा है, लेकिन अगर अमेज़ॅन अपनी साइट के रूप को बदलते हैं, तो मुझे संदेह है कि वे बैक एंड को बहुत बदल देंगे, जिसका अर्थ है कि वर्तमान जीईटी और पीओटी के प्रश्नों को काम करना चाहिए। मैं वैसे भी इस घटना में कक्षा को बनाए रखूंगा क्योंकि मैं इसे अक्सर उपयोग करता हूं।

3

मैं बड़ी बाल्टियों के लिए S3 उपयोग रिपोर्ट का उपयोग करने की सलाह देता हूं , देखें कि कैसे प्राप्त करने के लिए मेरा तरीका यह है कि मूल रूप से आपको T3 स्टोरेज के साथ अंतिम दिन के लिए S3 सेवा के लिए उपयोग रिपोर्ट डाउनलोड करने की आवश्यकता है - बाइट हर्स और इसे डिस्क उपयोग प्राप्त करने के लिए पार्स करें।

cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n

3

AWS प्रलेखन आपको बताता है कि यह कैसे करना है:

aws s3 ls s3://bucketnanme --recursive --human-readable --summarize

यह आपको मिलने वाला आउटपुट है:

2016-05-17 00:28:14    0 Bytes folder/
2016-05-17 00:30:57    4.7 KiB folder/file.jpg
2016-05-17 00:31:00  108.9 KiB folder/file.png
2016-05-17 00:31:03   43.2 KiB folder/file.jpg
2016-05-17 00:31:08  158.6 KiB folder/file.jpg
2016-05-17 00:31:12   70.6 KiB folder/file.png
2016-05-17 00:43:50   64.1 KiB folder/folder/folder/folder/file.jpg

Total Objects: 7

   Total Size: 450.1 KiB

2

वास्तव में कम-तकनीकी दृष्टिकोण के लिए: एक एस 3 क्लाइंट का उपयोग करें जो आपके लिए आकार की गणना कर सकता है। मैं पैनिक ट्रांसमिट का उपयोग कर रहा हूं, एक बाल्टी पर क्लिक करें, "जानकारी प्राप्त करें" और "गणना करें" -बटन पर क्लिक करें। मुझे यकीन नहीं है कि यह अन्य तरीकों के संबंध में कितना तेज या सटीक है, लेकिन यह उस आकार को वापस दे देता है जिसकी मुझे उम्मीद थी।


2

चूंकि बहुत सारे उत्तर हैं, मुझे लगा कि मैं अपने साथ पिच करूंगा। मैंने LINQPad का उपयोग करके C # में अपना कार्यान्वयन लिखा है। कॉपी, पेस्ट, और एक्सेस कुंजी, गुप्त कुंजी, क्षेत्र समापन बिंदु और बाल्टी नाम दर्ज करें जिसे आप क्वेरी करना चाहते हैं। इसके अलावा, AWSSDK नगेट पैकेज जोड़ना सुनिश्चित करें।

मेरी एक बाल्टी के खिलाफ परीक्षण, इसने मुझे 128075 की गिनती और 70.6GB का आकार दिया। मुझे पता है कि 99.9999% सटीक है, इसलिए मैं परिणाम के साथ अच्छा हूं।

void Main() {
    var s3Client = new AmazonS3Client("accessKey", "secretKey", RegionEndpoint.???);
    var stop = false;
    var objectsCount = 0;
    var objectsSize = 0L;
    var nextMarker = string.Empty;

    while (!stop) {
        var response = s3Client.ListObjects(new ListObjectsRequest {
            BucketName = "",
            Marker = nextMarker
        });

        objectsCount += response.S3Objects.Count;
        objectsSize += response.S3Objects.Sum(
            o =>
                o.Size);
        nextMarker = response.NextMarker;
        stop = response.S3Objects.Count < 1000;
    }

    new {
        Count = objectsCount,
        Size = objectsSize.BytesToString()
    }.Dump();
}

static class Int64Extensions {
    public static string BytesToString(
        this long byteCount) {
        if (byteCount == 0) {
            return "0B";
        }

        var suffix = new string[] { "B", "KB", "MB", "GB", "TB", "PB", "EB" };
        var longBytes = Math.Abs(byteCount);
        var place = Convert.ToInt32(Math.Floor(Math.Log(longBytes, 1024)));
        var number = Math.Round(longBytes / Math.Pow(1024, place), 1);

        return string.Format("{0}{1}", Math.Sign(byteCount) * number, suffix[place]);
    }
}

2

यदि आप AWS कंसोल से आकार प्राप्त करना चाहते हैं:

  1. S3 पर जाएं और बकेट नाम पर क्लिक करें
  2. "प्रबंधन" टैब चुनें

यहां छवि विवरण दर्ज करें

  1. का चयन करें मेट्रिक्स टैब

डिफ़ॉल्ट रूप से आपको बाल्टी का संग्रहण मीट्रिक देखना चाहिए


1

मुझे पता है कि यह एक पुराना सवाल है लेकिन यहाँ एक PowerShell उदाहरण है:

Get-S3Object -BucketName <buckename> | select key, size | foreach {$A += $_.size}

$A यदि आप केवल बाल्टी में एक विशिष्ट फ़ोल्डर का आकार चाहते हैं, तो बाल्टी का आकार होता है, और एक कुंजीनाम पैरामीटर होता है।


सबसे पहले Get-object..line चलाएं और फिर $ A (PowerShell से परिचित न होने वालों के लिए) चलाएं
Faiz

1

सभी बकेट आकार की जाँच करने के लिए इस बैश स्क्रिप्ट को आज़माएँ

s3list=`aws s3 ls | awk  '{print $3}'`
for s3dir in $s3list
do
    echo $s3dir
    aws s3 ls "s3://$s3dir"  --recursive --human-readable --summarize | grep "Total Size"
done

इसने बहुत अच्छा काम किया।
माइक बार्लो - बारडेव

एक चर में उत्पादन कैप्चरिंग तो बस आप इसे खत्म कर सकते हैं एक बेकार antipattern है।
ट्रिपलए

1

आप उपयोग कर सकते हैं s3cmd:

s3cmd du s3://Mybucket -H

या

s3cmd du s3://Mybucket --human-readable

यह कुल वस्तुओं और बाल्टी के आकार को बहुत ही पठनीय रूप में देता है।


क्या duट्रैवर्स सभी वस्तुओं को सूचीबद्ध करता है या मेटाडेटा को पुनः प्राप्त करता है? क्या वास्तव में रिपोर्ट संस्करण का एक एपीआई संस्करण या जो सांत्वना कंसोल में प्रदर्शित होता है ...
user67327

0

अरे, https://s3search.p3-labs.com/ पर AWS S3 के लिए एक मेटाडेटा खोज उपकरण है । यह उपकरण मेटाडेटा पर खोज के साथ एक बाल्टी में वस्तुओं के बारे में स्टैटिस्टिकिक्स देता है।


0

साथ ही हनजो एस 3 टूल्स भी ऐसा करता है। एक बार स्थापित होने के बाद, आप कर सकते हैं:

s3ls -s -H bucketname

लेकिन मेरा मानना ​​है कि यह भी ग्राहक पक्ष पर संक्षेपित है और एडब्ल्यूएस एपीआई के माध्यम से पुनर्प्राप्त नहीं किया गया है।


0

क्लाउडबेरी प्रोग्राम द्वारा बाल्टी के आकार, फ़ोल्डर की मात्रा और कुल फ़ाइलों को सूचीबद्ध करना भी संभव है, बाल्टी के शीर्ष पर "गुण" पर क्लिक करें।


0

यदि आप विंडोज और ओएसएक्स पर कमांड-लाइन का उपयोग नहीं करना चाहते हैं, तो साइबरड नामक एक सामान्य उद्देश्य दूरस्थ फ़ाइल प्रबंधन ऐप है । अपनी पहुंच / गुप्त कुंजी जोड़ी के साथ S3 में प्रवेश करें, निर्देशिका पर राइट-क्लिक करें, क्लिक करें Calculate


0

मैंने एक बैश स्क्रिप्ट लिखी है, s3-du.sh जो बाल्टी में फाइलों को s3ls के साथ सूचीबद्ध करेगी, और फाइलों की प्रिंट काउंट, और आकारों की तरह

s3-du.sh testbucket.jonzobrist.com
149 files in bucket testbucket.jonzobrist.com
11760850920 B
11485205 KB
11216 MB
10 GB

पूरी स्क्रिप्ट:

#!/bin/bash

if [ “${1}” ]
then
NUM=0
COUNT=0
for N in `s3ls ${1} | awk ‘{print $11}’ | grep [0-9]`
do
NUM=`expr $NUM + $N`
((COUNT++))
done
KB=`expr ${NUM} / 1024`
MB=`expr ${NUM} / 1048576`
GB=`expr ${NUM} / 1073741824`
echo “${COUNT} files in bucket ${1}”
echo “${NUM} B”
echo “${KB} KB”
echo “${MB} MB”
echo “${GB} GB”
else
echo “Usage : ${0} s3-bucket”
exit 1
fi    

यह उपनिर्देशिका का आकार करता है, क्योंकि अमेज़ॅन निर्देशिका नाम और सभी सामग्री का आकार लौटाता है।


0

CloudWatch में अब एक डिफ़ॉल्ट S3 सर्विस डैशबोर्ड है जो इसे "बकेट साइज बाइट्स एवरेज" नामक ग्राफ में सूचीबद्ध करता है। मुझे लगता है कि यह लिंक किसी के लिए काम करेगा जो पहले से ही AWS कंसोल में लॉग इन है:


-1

बाद का तरीका बाल्टी के कुल आकार को प्राप्त करने के लिए AWS PHP SDK का उपयोग करता है।

// make sure that you are using correct region (where the bucket is) to get new Amazon S3 client
$client = \Aws\S3\S3Client::factory(array('region' => $region));

// check if bucket exists
if (!$client->doesBucketExist($bucket, $accept403 = true)) {
    return false;
}
// get bucket objects
$objects = $client->getBucket(array('Bucket' => $bucket));

$total_size_bytes = 0;
$contents = $objects['Contents'];

// iterate through all contents to get total size
foreach ($contents as $key => $value) {
   $total_bytes += $value['Size'];
}
$total_size_gb = $total_size_bytes / 1024 / 1024 / 1024;

-1

यह मेरे लिए काम करता है ।।

aws s3 ls s3://bucket/folder/ --recursive | awk '{sz+=$3} END {print sz/1024/1024 "MB"}'

3
क्या आप कुछ और विवरण जोड़ सकते हैं?
पियरे.वीयरेंस

1
यह अनिवार्य रूप से एक ही समाधान है जैसा कि एक और उत्तर लगभग एक साल पहले पोस्ट किया गया था।
लुई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.