ฉันมีบัญชี AWS ฉันใช้ S3 เพื่อจัดเก็บข้อมูลสำรองจากเซิร์ฟเวอร์ที่แตกต่างกัน คำถามคือมีข้อมูลใด ๆ ในคอนโซล AWS เกี่ยวกับพื้นที่ดิสก์ที่ใช้ใน S3 cloud ของฉันหรือไม่
ฉันมีบัญชี AWS ฉันใช้ S3 เพื่อจัดเก็บข้อมูลสำรองจากเซิร์ฟเวอร์ที่แตกต่างกัน คำถามคือมีข้อมูลใด ๆ ในคอนโซล AWS เกี่ยวกับพื้นที่ดิสก์ที่ใช้ใน S3 cloud ของฉันหรือไม่
คำตอบ:
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"}'
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
สำคัญ:คุณต้องระบุทั้ง StorageType และ BucketName ในอาร์กิวเมนต์มิติมิฉะนั้นคุณจะไม่ได้รับผลลัพธ์
ฉันไม่แน่ใจว่าสิ่งนี้ถูกเพิ่มใน AWSCLI เมื่อใดเนื่องจากคำถามเดิมคือเมื่อ 3 ปีที่แล้ว แต่เครื่องมือบรรทัดคำสั่งให้สรุปที่ดีโดยการเรียกใช้:
aws s3 ls s3://mybucket --recursive --human-readable --summarize
for b in $(aws s3 ls | awk '{ print $NF }'); do printf "$b "; aws s3 ls s3://$b --recursive --human-readable --summarize | tail -1; done
หากต้องการทราบขนาดของที่เก็บข้อมูล S3 โดยใช้ AWS Console:
หวังว่านี่จะช่วยได้
ls
ใช้โซลูชันที่เป็นพื้นฐานได้
s3cmdสามารถแสดงสิ่งนี้ให้คุณเห็นได้โดยการเรียกใช้โดยs3cmd du
เลือกที่จะส่งชื่อที่เก็บข้อมูลเป็นอาร์กิวเมนต์
ขณะนี้ 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"
มิฉะนั้นแบบสอบถามงานได้ดี!
บนกล่อง linux ที่มีpython
(พร้อมตัวpip
ติดตั้ง) grep
และawk
ติดตั้ง AWS CLI (เครื่องมือบรรทัดคำสั่งสำหรับ EC2, S3 และบริการอื่น ๆ อีกมากมาย)
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
ในคอลัมน์ที่ 3 ของผลลัพธ์ที่ได้ (ขนาดเป็น KB) จากนั้นแสดงที่ส่วนท้ายหมายเหตุคำสั่งนี้ใช้ได้กับที่เก็บข้อมูลปัจจุบันหรือ 'โฟลเดอร์' ไม่สามารถเรียกใช้ซ้ำได้
Cloud watch ยังช่วยให้คุณสร้างเมตริกสำหรับที่เก็บข้อมูล S3 ของคุณ จะแสดงเมตริกตามขนาดและจำนวนวัตถุ บริการ> เครื่องมือการจัดการ> นาฬิการะบบคลาวด์ เลือกภูมิภาคที่เป็นที่เก็บข้อมูล S3 ของคุณและเมตริกขนาดและจำนวนออบเจ็กต์จะอยู่ในเมตริกเหล่านั้น
ดู/server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket
ตอบโดย Vic ...
<?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';
?>
echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
อยู่ตรงด้านล่างของซอร์สโค้ด
นอกจากคำตอบของคริสโตเฟอร์
หากคุณต้องการนับขนาดทั้งหมดของการใช้ที่เก็บข้อมูลเวอร์ชัน:
aws s3api list-object-versions --bucket BUCKETNAME --output json --query "[sum(Versions[].Size)]"
นับทั้งเวอร์ชันล่าสุดและเวอร์ชันที่เก็บถาวร
การรับขนาดที่เก็บข้อมูลขนาดใหญ่ผ่าน API (ทั้ง aws cli หรือ s4cmd) นั้นค่อนข้างช้า นี่คือHowToของฉันที่อธิบายวิธีแยกวิเคราะห์รายงานการใช้งาน S3โดยใช้ bash one liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
คอนโซล AWS จะไม่แสดงสิ่งนี้ให้คุณเห็น แต่คุณสามารถใช้Bucket ExplorerหรือCloudberry Explorerเพื่อรับขนาดรวมของที่เก็บข้อมูลได้ ทั้งสองมีเวอร์ชันฟรี
หมายเหตุ: ผลิตภัณฑ์เหล่านี้ยังคงต้องได้รับขนาดของแต่ละออบเจ็กต์ดังนั้นจึงอาจใช้เวลานานสำหรับที่เก็บข้อมูลที่มีวัตถุจำนวนมาก
อ้างอิงจากคำตอบของ @ 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]
นอกจากนี้Cyberduckยังช่วยให้คำนวณขนาดของที่เก็บข้อมูลหรือโฟลเดอร์ได้อย่างสะดวก
นี่เป็นคำถามเก่า แต่เนื่องจากฉันกำลังมองหาคำตอบฉันจึงวิ่งข้ามมัน คำตอบบางคำทำให้ฉันจำได้ว่าฉันใช้ S3 Browser เพื่อจัดการข้อมูล คุณสามารถคลิกที่ถังและคุณสมบัติการตีและจะแสดงผลรวม ค่อนข้างเรียบง่าย ฉันขอแนะนำเบราว์เซอร์: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
คุณสามารถทำได้ผ่านไคลเอนต์ S3 หากคุณต้องการ UI ที่เป็นมิตรกับมนุษย์
ฉันใช้CrossFTPซึ่งฟรีและข้ามแพลตฟอร์มและที่นั่นคุณสามารถคลิกขวาที่ไดเรกทอรีโฟลเดอร์ -> เลือก "คุณสมบัติ ... " -> คลิกที่ปุ่ม "คำนวณ" ถัดจาก Size และ voila
s3adminเป็นแอปโอเพนซอร์ส (UI) ที่ให้คุณเรียกดูที่เก็บข้อมูลคำนวณขนาดรวมแสดงไฟล์ที่ใหญ่ที่สุด / เล็กที่สุด ได้รับการออกแบบมาเพื่อให้มีภาพรวมอย่างรวดเร็วของที่เก็บข้อมูลของคุณและการใช้งาน
คุณถาม: ข้อมูลในคอนโซล AWS เกี่ยวกับพื้นที่ดิสก์ที่ใช้บนคลาวด์ S3 ของฉัน ?
ผมจึงไปเรียกเก็บเงินแผงควบคุมและตรวจสอบการใช้ S3 ในการเรียกเก็บเงินในปัจจุบัน
พวกเขาให้ข้อมูลแก่คุณ - MTD - ใน Gb ถึง 6 จุดทศนิยม IOW ถึงระดับ Kb
แยกย่อยตามภูมิภาค แต่การเพิ่ม (สมมติว่าคุณใช้มากกว่าหนึ่งภูมิภาค) นั้นง่ายพอ
BTW: คุณอาจต้องการสิทธิ์เฉพาะ IAM เพื่อเข้าถึงข้อมูลการเรียกเก็บเงิน
ฉันใช้Cloud Turtleเพื่อรับขนาดของถังแต่ละตัว หากขนาดที่เก็บข้อมูลเกิน> 100 Gb จะต้องใช้เวลาสักพักในการแสดงขนาด Cloud Turtle เป็นฟรีแวร์