AWS S3: Ne kadar disk alanı kullanıldığını nasıl görebilirim


113

AWS hesabım var. S3'ü farklı sunuculardan yedekleri depolamak için kullanıyorum. Soru, AWS konsolunda S3 bulutumda ne kadar disk alanı kullanıldığına dair herhangi bir bilgi var mı?


1
Tüm nesneleri almanız ve ardından tüm dosya boyutlarını toplamanız gerekir. Bunu tek bir operasyonda yapamazsınız.
Layke

Bu sorunun gerçek bir çözümünün olmaması garip. Tüm öğeleri gözden geçirmek ve hesaplamak, 10 milyonlarca dosyanız varsa bir çözüm değildir! AWS'nin s3 kullanıcı arayüzünde, Yönetim -> Metrikler altında kullanımı kolayca görebilirsiniz. Bunu komut satırından almanın neden bir yolu yok?
Sarang

Yanıtlar:


117

Yippe - AWS CLI'ye yönelik bir güncelleme, kovalar arasında yinelemeli olarak izlemeye olanak tanır ...

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

toplam baskı / 1024/1024/1024 * .03, 1 TB'ın altındaysanız kullanım için güzel bir tahmin verir. @cudds awesomeness - çok teşekkürler !!!
chrislovecnm

4
Tek kovaysan grep parçasına ihtiyacın yok.
jpbochi

7
AWS Cloudwatch artık paket boyutu ve günlük olarak güncellenen nesne sayısı için bir metriğe sahip. Zaman hakkında! aws.amazon.com/blogs/aws/…
cudds

3
Örnek 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 Önemli: Boyutlar bağımsız değişkeninde hem StorageType hem de BucketName belirtmelisiniz, aksi takdirde sonuç almazsınız.
Sam Martin

@SamMartin StorageType'ın ne olması gerekiyor? Ayrıca bu cevabın 100 GB'den büyük
paketler

104

Orijinal sorunun 3 yıl önce olduğu düşünüldüğünde bunun AWSCLI'ye ne zaman eklendiğinden emin değilim, ancak komut satırı aracı şunu çalıştırarak güzel bir özet veriyor:

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


2
Kabul edilen cevaptan çok daha basit bir çözüm. Teşekkürler!
Adrian Macneil

1
bu, sürümlerle gerçek boyutu göstermez. S3 kovasının toplam boyutunu tüm sürümlerde kontrol etmenin bir yolu var mı?
Shanika Ediriweera

1
Kovalarınızın her birinin toplam boyutunu yazdırın:for b in $(aws s3 ls | awk '{ print $NF }'); do printf "$b "; aws s3 ls s3://$b --recursive --human-readable --summarize | tail -1; done
Matt White

69

AWS Konsolunu kullanarak S3 paketinin boyutunu öğrenmek için:

  1. S3 paket adını tıklayın
  2. "Yönetim" sekmesini seçin
  3. "Metrikler" gezinme düğmesini tıklayın
  4. Varsayılan olarak paketin Depolama metriğini görmelisiniz

Bu yardımcı olur umarım.


3
Bu, paketinizde TB veri olması durumunda daha hızlı çalışır. Kabul edilen cevaplar, bu ölçekteki tüm nesneleri hesaplamak için çok zaman alır.
sokras

Ayrıca bunun, lstemelli çözümlerin yakalayamadığı, asılı eksik yüklemeleri yakalayacağını unutmayın.
David Moles

bunu yapmanın en hızlı yolu bu cevap
Muhammed Zekrallah

36

s3cmd bunu çalıştırarak s3cmd du, isteğe bağlı olarak paket adını bağımsız değişken olarak ileterek size gösterebilir .


1
Bilginize - Bunu ve cudds yanıtındaki aws cli sürümünü denedim. Her ikisi de iyi çalışıyor, ancak s3cmd 1.5.0-rc1 sürümünden itibaren denediğim durumlarda önemli ölçüde daha yavaştı.
DougW

@DougW: Teşekkürler, faydalı bilgiler. AWS CLI 1.0.0 Eylül 2013'te piyasaya sürüldüğünden, cevabımı yazdığım sırada yoktu.
markusk

s3cmd, AWS4 hashing özelliğini desteklemediğinden, AB bölgesi "eu-central-1"
Koen

@Koen .: Teşekkürler, bunun farkında değildim. Görünüşe göre s3cmd bakımcısı, AWS4 için destek eklemeyi araştırıyor: github.com/s3tools/s3cmd/issues/402
markusk

@Koen .: s3cmd, 2015-01-12'de piyasaya sürülen 1.5.0'dan itibaren AWS4 karmasını desteklemektedir. S3tools.org/news adresine bakın .
markusk

28

AWS CLI artık JMESPath ifadeleri alan --queryparametreyi desteklemektedir .

Bu, list-objectskullanarak verilen beden değerlerini sum(Contents[].Size)toplayıp beğenebileceğiniz anlamına gelir length(Contents[]).

Bu, aşağıdaki gibi resmi AWS CLI kullanılarak çalıştırılabilir ve Şubat 2014'te tanıtılmıştır

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

Windows komut satırında sorgu dizesinin etrafında çift tırnak kullanmak zorunda kaldım. Yine de bir şampiyon gibi çalışıyor.
Travis Steel

Dikkat: kova boşsa, komut aşağıdaki hatayla başarısız olur: In function sum(), invalid type for value: None, expected one of: ['array-number'], received: "null"Aksi takdirde sorgu harika çalışır!
mechatroner

7

AWS CLI (EC2, S3 ve diğer birçok hizmet için komut satırı araçları ) bulunan python( pipyükleyiciyle) grepve yükleyen linux kutusundaawk

sudo pip install awscli

daha sonra .awssecretana klasörünüzde aşağıdaki içeriğe sahip bir dosya oluşturun (anahtar, sırrı ve bölgeyi gerektiği gibi ayarlayın):

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

Bu dosyayı yalnızca kullanıcınız için okuma-yazma yapın:

sudo chmod 600 .awssecret

ve bunu ortamınıza aktarın

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

daha sonra terminalde çalıştırın (bu, \burada kolay okumak için ile ayrılmış tek satırlık bir komuttur ):

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"}'
  • awsbölüm (isteğe bağlı olarak bir ya da "alt dizinin) kova listeler
  • grep(kullanarak parça kaldırır -v) Düzenli İfade (kullanarak eşleşen satırlar -E). ^$boş satır içindir, --çıktıdaki ayırıcı satırlar içindir.aws s3 ls
  • sonuncusu , sonuçta elde edilen çıktının 3. sütununa awkekleyin total(boyut KB olarak) ve sonunda onu görüntüleyin

NOT Bu komut, yinelemeli olarak değil, geçerli paket veya "klasör" için çalışır


7

Bulut saati, S3 klasörünüz için ölçümler oluşturmanıza da olanak tanır. Size boyut ve nesne sayısına göre ölçümleri gösterir. Hizmetler> Yönetim Araçları> Bulut izleme. S3 klasörünüzün bulunduğu bölgeyi seçin ve boyut ve nesne sayısı metrikleri mevcut metrikler arasında yer alsın.


6

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

Vic tarafından cevaplandı ...

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

Bu durumda gigabaytın 1024 3 veya 1000 3 olduğunu biliyor musunuz ? Kesin bir S3 ifadesi bulmakta zorlanıyorum.
dfrankow

@dfrankow Satır echo ($totalSize / 1024 / 1024 / 1024) . ' GB';, kaynak kodun hemen altında.
MJD

@MJD Buradaki düşüncemin ne olduğunu hatırlamıyorum. Bu PHP kodunu değil, "gigabyte" kelimesinin s3cmd veya S3 kullanımı hakkında soru soruyordu.
dfrankow

5

Christopher'ın cevabına ek olarak.

Sürümü belirlenmiş paketin toplam boyutunu saymanız gerekiyorsa şunları kullanın:

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

Hem En Son hem de Arşivlenmiş sürümleri sayar.



1

AWS konsolu size bunu göstermeyecek ancak bir paketin toplam boyutunu elde etmek için Bucket Explorer veya Cloudberry Explorer'ı kullanabilirsiniz. Her ikisinin de ücretsiz sürümleri mevcuttur.

Not: Bu ürünlerin yine de her bir nesnenin boyutunu alması gerekir, bu nedenle çok sayıda nesne içeren kovalar için uzun zaman alabilir.


Yine de sadece bir deneme yazılımı görebiliyorum. Bu teklif kaldırıldı mı?
Trefex

1

@ Cudds'ın cevabına göre:

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]

Ayrıca Cyberduck , bir kova veya klasör için boyut hesaplamasına rahatlıkla izin verir.


1

Mini John'un cevabı tamamen benim için çalıştı! Harika ... eklemek zorunda kaldı

--region eu-west-1 

Yine de Avrupa'dan


1

Bu eski bir soruşturma, ancak cevabı aradığım için onunla karşılaştım. Bazı yanıtlar, verileri yönetmek için S3 Tarayıcı kullandığımı hatırlattı. Bir kovaya tıklayıp özellikleri tıklayabilirsiniz ve size toplamı gösterir. Gayet basit. Tarayıcıyı şiddetle tavsiye ederim: https://s3browser.com/default.aspx?v=6-1-1&fam=x64


0

İnsan dostu bir kullanıcı arayüzü tercih ediyorsanız, bunu bir S3 istemcisi aracılığıyla da yapabilirsiniz.

Ücretsiz ve çapraz platform olan CrossFTP kullanıyorum ve orada klasör dizinine sağ tıklayıp -> "Özellikler ..." i seçin -> Boyut ve işin yanındaki "Hesapla" düğmesine tıklayın.


0

s3admin , paketlere göz atmanıza, toplam boyutu hesaplamanıza, en büyük / en küçük dosyaları göstermenize olanak tanıyan açık kaynaklı bir uygulamadır (UI). Kovalarınız ve kullanımları hakkında hızlı bir genel bakışa sahip olmak için uyarlanmıştır.


0

Siz sordunuz: AWS konsolunda S3 bulutumda ne kadar disk alanı kullanıldığına dair bilgiler ?

Faturalama Panosuna gidiyorum ve cari faturadaki S3 kullanımını kontrol ediyorum .

Size bilgiyi - MTD - Gb'den 6 ondalık basamağa kadar, IOW, Kb seviyesinde verir.

Bölgeye göre bölünmüştür, ancak onları toplamak (birden fazla bölge kullandığınızı varsayarsak) yeterince kolaydır.

BTW: Fatura bilgilerine ulaşmak için belirli IAM izinlerine ihtiyacınız olabilir.


-2

Tek tek paketlerin boyutunu elde etmek için Cloud Turtle kullanıyorum . Paket boyutu> 100 Gb'yi aşarsa, boyutun görüntülenmesi biraz zaman alır. Bulut kaplumbağası ücretsiz bir yazılımdır.


8
Bu yazılıma dikkat edin. Ekstra krom uzantıları yükler ve oldukça spam gibi görünüyor.
styks
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.