एडब्ल्यूएस एस 3: मैं कैसे देखता हूं कि डिस्क स्थान कितना उपयोग कर रहा है


113

मेरे पास AWS खाता है। मैं विभिन्न सर्वरों से बैकअप स्टोर करने के लिए S3 का उपयोग कर रहा हूं। प्रश्न यह है कि मेरे S3 क्लाउड में डिस्क स्थान का उपयोग करने के बारे में AWS कंसोल में कोई जानकारी है?


1
आपको सभी ऑब्जेक्ट प्राप्त करने होंगे, फिर सभी फाइलों के आकार को समेटना होगा। आप इसे एक ही ऑपरेशन में नहीं कर सकते।
लेके

यह अजीब है कि इस समस्या का कोई वास्तविक समाधान नहीं है। सभी वस्तुओं के माध्यम से जाना और गणना करना एक समाधान नहीं है यदि आपके पास लाखों फाइलें हैं! AWS के s3 UI में आप आसानी से मैनेजमेंट -> मेट्रिक्स के तहत उपयोग देख सकते हैं। कमांड लाइन से इसे प्राप्त करने का कोई तरीका क्यों नहीं है?
सारंग

जवाबों:


117

Yippe - AWS CLI के लिए एक अपडेट आपको बाल्टी के माध्यम से पुनरावर्ती एलएस की अनुमति देता है ...

aws s3 ls s3://<bucketname> --recursive  | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'

प्रिंट कुल / 1024/1024/1024 * .03 $ उपयोग के लिए एक अच्छा अनुमान देता है यदि आप 1TB से कम के हैं। @ कुदाल अजीब - धन्यवाद एक टन !!!
क्रिसलोवेस्कैम

4
अगर आपको एक ही बाल्टी नहीं है तो आपको grep वाले हिस्से की जरूरत नहीं है।
जंबोची

7
AWS क्लाउडवाच में अब बाल्टी आकार और वस्तुओं की संख्या के लिए एक मीट्रिक है जिसे दैनिक रूप से अपडेट किया जाता है। समय के बारे में! aws.amazon.com/blogs/aws/…
cudds

3
उदाहरण 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 महत्वपूर्ण: आपको स्टोरेज टाइप और बकेटनेम दोनों को आयाम तर्क में निर्दिष्ट करना होगा अन्यथा आपको कोई परिणाम नहीं मिलेगा।
सैम मार्टिन

@SamMartin StorageType क्या होना चाहिए? इसके अलावा इस उत्तर में 100 जीबी से बड़े बाल्टी के लिए गणना करने में बहुत लंबा समय लगता है
विवेक कात्याल

104

मुझे यकीन नहीं है जब यह जोड़ा गया था AWSCLI को दिया गया था कि मूल प्रश्न 3 साल पहले था, लेकिन कमांड लाइन टूल रन करके एक अच्छा सारांश देता है:

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

4
तुम्हारा और क्रिस्टोफर अब तक के सबसे अच्छे जवाब हैं।
माइकल अहलर्स

2
स्वीकृत उत्तर की तुलना में बहुत सरल समाधान। धन्यवाद!
एड्रियन मैकनील

1
यह संस्करणों के साथ सही आकार नहीं दिखाता है। क्या सभी संस्करणों के साथ s3 बाल्टी के कुल आकार की जांच करने का एक तरीका है?
शनिका एदिरीवेरा

1
अपने प्रत्येक बकेट का कुल आकार प्रिंट करें:for b in $(aws s3 ls | awk '{ print $NF }'); do printf "$b "; aws s3 ls s3://$b --recursive --human-readable --summarize | tail -1; done
मैट व्हाइट

69

AWS कंसोल का उपयोग करके S3 बाल्टी के आकार का पता लगाने के लिए:

  1. S3 बकेट नाम पर क्लिक करें
  2. "प्रबंधन" टैब चुनें
  3. "मेट्रिक्स" नेविगेशन बटन पर क्लिक करें
  4. डिफ़ॉल्ट रूप से आपको बाल्टी का संग्रहण मीट्रिक देखना चाहिए

उम्मीद है की यह मदद करेगा।


3
यदि आपकी बाल्टी में डेटा की टीबी है तो यह तेजी से काम करता है। स्वीकृत उत्तर उस पैमाने की सभी वस्तुओं की गणना करने में बहुत समय लेते हैं।
सोक्रस

यह भी ध्यान रखें कि यह अधूरे अपलोड को कैप्चर करेगा, ls-based समाधानों के साथ नहीं।
डेविड मोल

इसका सबसे तेज़ तरीका यह है
मोहम्मद ज़कराल्लाह

36

s3cmd आपको इसे चलाकर दिखा सकता है s3cmd du, वैकल्पिक रूप से बाल्टी नाम को एक तर्क के रूप में पारित कर सकता है।


1
FYI करें - मैंने यह कोशिश की और aud clud उत्तर में ai cli संस्करण को aws। वे दोनों ठीक काम करते हैं, लेकिन जिन मामलों में मैंने 1.5.0-आरसी 1 जारी करने की कोशिश की थी, उनमें s3cmd काफी धीमा था।
डग डब्लू

@ डौग: धन्यवाद, उपयोगी जानकारी। AWS CLI 1.0.0 सितंबर 2013 में जारी किया गया था , इसलिए यह उस समय मौजूद नहीं था जब मैंने अपना उत्तर लिखा था।
मार्कस

s3cmd AWS4 हैशिंग का समर्थन नहीं करता है, इसलिए यह किसी भी नए क्षेत्रों के साथ काम नहीं करेगा, जिसमें ईयू क्षेत्र "यूरोप-सेंट्रल -1" शामिल है
कोएन।

@ नोकिया: धन्यवाद, मुझे इसकी जानकारी नहीं थी। ऐसा लगता है कि S3cmd अनुचर AWS4 के लिए समर्थन जोड़ने में लग रहा है: github.com/s3tools/s3cmd/issues/402
markusk

@Koen: s3cmd अब 1.5.0 के रूप में AWS4 हैशिंग का समर्थन करता है, जिसे 2015-01-12 जारी किया गया था। S3tools.org/news देखें ।
8

28

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[])]"

मुझे विंडोज़ कमांड लाइन में क्वेरी स्ट्रिंग के आसपास दोहरे उद्धरण चिह्नों का उपयोग करना था। हालांकि एक विजेता की तरह काम करता है।
ट्रैविस स्टील

खबरदार: यदि बाल्टी खाली है तो कमांड निम्नलिखित त्रुटि के साथ विफल हो जाएगी: In function sum(), invalid type for value: None, expected one of: ['array-number'], received: "null"अन्यथा क्वेरी बढ़िया काम करती है!
मेकट्रोनर

7

लिनक्स बॉक्स पर python( pipइंस्टॉलर के साथ ), grepऔर awk, एडब्ल्यूएस सीएलआई स्थापित करें (ईसी 2, एस 3 और कई अन्य तरीकों के लिए कमांड लाइन टूल)

sudo pip install awscli

फिर .awssecretनीचे के रूप में सामग्री के साथ अपने घर के फ़ोल्डर में एक फ़ाइल बनाएं (कुंजी, गुप्त और आवश्यकतानुसार क्षेत्र को समायोजित करें):

[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>

इस फ़ाइल को केवल अपने उपयोगकर्ता को पढ़ें-लिखें:

sudo chmod 600 .awssecret

और इसे अपने वातावरण में निर्यात करें

 export AWS_CONFIG_FILE=/home/<your_name>/.awssecret

फिर टर्मिनल में चलाएं (यह एक एकल पंक्ति कमांड है, जो \यहां पढ़ने के लिए अलग है ):

aws s3 ls s3://<bucket_name>/foo/bar | \
grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | \
awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
  • awsभाग बाल्टी (या वैकल्पिक रूप से 'उप-फ़ोल्डर') को सूचीबद्ध करता है
  • यह grepभाग -vरेगुलर एक्सप्रेशन (उपयोग -E) से मेल खाती लाइनों को हटाता है (उपयोग करके )। ^$रिक्त रेखा के लिए है, --के आउटपुट में विभाजक रेखाओं के लिए हैaws s3 ls
  • अंतिम परिणामी आउटपुट के तीसरे कोलम में awkजोड़ें total(KB में आकार) तो इसे अंत में प्रदर्शित करें

ध्यान दें कि यह आदेश वर्तमान बाल्टी या 'फ़ोल्डर' के लिए काम करता है, पुनरावर्ती नहीं


7

क्लाउड वॉच से आप अपने S3 बकेट के लिए मेट्रिक्स भी बना सकते हैं। यह आपको आकार और ऑब्जेक्ट की संख्या से मैट्रिक्स दिखाता है। सेवाएँ> प्रबंधन उपकरण> क्लाउड घड़ी। उस क्षेत्र को चुनें जहां आपकी S3 बाल्टी है और उन उपलब्ध मीट्रिक में आकार और ऑब्जेक्ट की संख्या मीट्रिक है।


6

Https://serverfault.com/questions/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket देखें

विक द्वारा उत्तर दिया गया ...

<?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';
?>

क्या आप जानते हैं कि इस मामले में गीगाबाइट 1024 3 या 1000 3 है? मुझे एक निश्चित S3 कथन खोजने में कठिन समय हो रहा है।
dfrankow

@dfrankow echo ($totalSize / 1024 / 1024 / 1024) . ' GB';स्रोत कोड के निचले भाग में है।
MJD

@MJD मुझे याद नहीं है कि मेरा विचार यहाँ क्या था। यह "गीगाबाइट" शब्द के s3cmd या S3 उपयोग के बारे में पूछ रहा था, न कि यह PHP कोड।
dfrankow

5

क्रिस्टोफर के जवाब के अलावा।

यदि आपको वर्जन बकेट के कुल आकार की गणना करने की आवश्यकता है:

aws s3api list-object-versions --bucket BUCKETNAME --output json --query "[sum(Versions[].Size)]"

यह नवीनतम और संग्रहीत संस्करणों दोनों को गिना जाता है।


5

API (aws cli या s4cmd) के माध्यम से बड़े बकेट का आकार प्राप्त करना काफी धीमा है। यहाँ मेरा HowTo कैसे एक लाइनर का उपयोग S3 उपयोग रिपोर्ट पार्स करने के लिए समझा रहा है :

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

1

AWS कंसोल आपको यह नहीं दिखाएगा, लेकिन बाल्टी के कुल आकार को प्राप्त करने के लिए आप बकेट एक्सप्लोरर या क्लाउडबेरी एक्सप्लोरर का उपयोग कर सकते हैं । दोनों के मुफ्त संस्करण उपलब्ध हैं।

नोट: इन उत्पादों को अभी भी प्रत्येक व्यक्तिगत वस्तु का आकार प्राप्त करना है, इसलिए यह बहुत सी वस्तुओं के साथ बाल्टी के लिए एक लंबा समय ले सकता है।


हालांकि मैं केवल एक ट्रायलवेयर देख सकता हूं। क्या उस प्रस्ताव को हटा दिया गया है?
ट्रेफेक्स

1

@ Cudds के उत्तर के आधार पर:

function s3size()
{
    for path in $*; do
        size=$(aws s3 ls "s3://$path" --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{printf "%.2fGb\n", (total/1024/1024/1024)}')
        echo "[s3://$path]=[$size]"
    done
}

...

$ s3size bucket-a bucket-b/dir
[s3://bucket-a]=[24.04Gb]
[s3://bucket-b/dir]=[26.69Gb]

इसके अलावा, साइबरडैक आसानी से एक बाल्टी या एक फ़ोल्डर के लिए आकार की गणना के लिए अनुमति देता है।


1

मिनी जॉन का जवाब पूरी तरह से मेरे लिए काम किया! बहुत बढ़िया ... जोड़ना था

--region eu-west-1 

हालांकि यूरोप से


1

यह एक पुरानी पूछताछ है, लेकिन जब से मैं उस जवाब की तलाश में था, मैं उसके पार चला गया था। कुछ उत्तरों ने मुझे याद दिलाया कि मैं डेटा को प्रबंधित करने के लिए S3 ब्राउज़र का उपयोग करता हूं। आप एक बाल्टी और हिट गुणों पर क्लिक कर सकते हैं और यह आपको कुल दिखाता है। बहुत साधारण। मैं अत्यधिक ब्राउज़र की सलाह देता हूं: https://s3browser.com/default.aspx?v=6-1-1&fam=x64


0

ठीक है, आप इसे S3 क्लाइंट के माध्यम से भी कर सकते हैं यदि आप एक मानव अनुकूल यूआई पसंद करते हैं।

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


0

s3admin एक ओपनसोर्स ऐप (UI) है जो आपको बाल्टी ब्राउज़ करने, कुल आकार की गणना करने, सबसे बड़ी / सबसे छोटी फाइलें दिखाने की सुविधा देता है। यह आपके बकेट के त्वरित अवलोकन और उनके उपयोग के लिए सिलवाया गया है।


0

आपने पूछा: मेरे S3 क्लाउड पर डिस्क स्थान का उपयोग करने के बारे में AWS कंसोल में जानकारी ?

मैं बिलिंग डैशबोर्ड पर जाता हूं और वर्तमान बिल में एस 3 उपयोग की जांच करता हूं ।

वे आपको सूचना देते हैं - MTD - Gb में 6 दशमलव अंक, IOW, को Kb स्तर तक।

यह क्षेत्र से टूट गया है, लेकिन उन्हें जोड़ना (यह मानकर कि आप एक से अधिक क्षेत्रों का उपयोग करते हैं) काफी आसान है।

BTW: आपको बिलिंग जानकारी प्राप्त करने के लिए विशिष्ट IAM अनुमतियों की आवश्यकता हो सकती है।


-2

मैं अलग-अलग बाल्टियों का आकार पाने के लिए क्लाउड टर्टल का उपयोग करता हूं । यदि बाल्टी का आकार> 100 जीबी से अधिक है, तो आकार प्रदर्शित करने में कुछ समय लगेगा। क्लाउड टर्टल फ्रीवेयर है।


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