web-dev-qa-db-fra.com

AWS S3: comment voir la quantité d'espace disque utilisée

J'ai un compte AWS. J'utilise S3 pour stocker des sauvegardes de différents serveurs. La question se pose de savoir si la console AWS contient des informations sur la quantité de disque utilisée par spase sur mon cloud S3? 

Merci

83
KennyPowers

Yippe - une mise à jour de l'AWS CLI vous permet de ler récursivement dans des compartiments ...

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

Je ne sais pas exactement quand cela a été ajouté à AWSCLI, vu que la question initiale était posée il y a 3 ans, mais l'outil en ligne de commande fournit un résumé de Nice en exécutant:

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

s3cmd peut vous montrer cela en exécutant s3cmd du, en passant éventuellement le nom du compartiment en tant qu'argument.

35
markusk

AWS CLI prend désormais en charge le paramètre --query qui prend un JMESPath expressions. 

Cela signifie que vous pouvez additionner les valeurs de taille données par list-objects en utilisant sum(Contents[].Size) et les compter comme length(Contents[]).

Ceci peut être exécuté à l'aide de l'AWS CLI officiel, comme ci-dessous, et a été introduit en Février 2014

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

Pour connaître la taille du compartiment S3 à l'aide de la console AWS:

  1. Cliquez sur le nom du compartiment S3.
  2. Sélectionnez l'onglet "Gestion"
  3. Cliquez sur le bouton de navigation "Metrics"
  4. Par défaut, vous devriez voir la métrique de stockage du compartiment.

J'espère que cela t'aides.

20
endriju

Sur les machines Linux qui ont python (avec pip installer), grep et awk, installez AWS CLI (outils de ligne de commande pour EC2, S3 et de nombreux autres services)

Sudo pip install awscli

créez ensuite un fichier .awssecret dans votre dossier de base avec le contenu ci-dessous (ajustez la clé, le secret et la région selon vos besoins):

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

Rendre ce fichier en lecture-écriture à votre utilisateur uniquement:

Sudo chmod 600 .awssecret

et l'exporter dans votre environnement

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

puis exécutez dans le terminal (il s’agit d’une commande simple ligne, séparée par \ pour faciliter la lecture ici):

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"}'
  • la partie aws liste le compartiment (ou éventuellement un «sous-dossier»)
  • la partie grep supprime (à l'aide de -v) les lignes qui correspondent à l'expression régulière (à l'aide de -E). ^$ est pour la ligne vide, -- est pour les lignes de séparation dans la sortie de aws s3 ls
  • la dernière awk ajoute simplement à total la 3ème colonne de la sortie résultante (la taille en Ko) puis l'affiche à la fin

NOTEcette commande fonctionne pour le compartiment ou 'dossier' actuel, pas de manière récursive

7
JScoobyCed

Voir https://serverfault.com/questions/84815/how-can-i-get-the-size-of-an-Amazon-s3-bucket

Répondu par 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';
?>
6
JonLovett

Cloud Watch vous permet également de créer des métriques pour votre compartiment S3. Il vous montre les métriques par la taille et le nombre d'objets. Services> Outils de gestion> Surveillance en nuage. Choisissez la région où se trouve votre compartiment S3 et les mesures de taille et de nombre d'objets figureront parmi celles disponibles.

6
rowelee

Obtenir la taille large des seaux via l'API (aws cli ou s4cmd) est assez lent. Voici mon HowTo expliquant comment analyser le rapport d'utilisation S3 en utilisant bash one liner:

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

En plus de la réponse de Christopher.

Si vous devez compter la taille totale de l’utilisation du compartiment versionné:

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

Il compte à la fois les dernières versions et les versions archivées.

4
ruletkin

C'est une vieille enquête, mais comme je cherchais la réponse, je l'ai trouvée. Certaines réponses m'ont rappelé que j'utilisais S3 Browser pour gérer les données. Vous pouvez cliquer sur un compartiment et cliquer sur les propriétés pour afficher le total. Assez simple. Je recommande fortement le navigateur: https://s3browser.com/default.aspx?v=6-1-1&fam=x64

1
user7191982

La console AWS ne vous montrera pas cela, mais vous pouvez utiliser Bucket Explorer ou Cloudberry Explorer pour obtenir la taille totale d'un compartiment. Les deux ont des versions gratuites disponibles.

Remarque: ces produits doivent toujours avoir la taille de chaque objet. Par conséquent, les seaux contenant de nombreux objets peuvent prendre beaucoup de temps.

1
Geoff Appleford

Basé sur la réponse de @ 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]

En outre, Cyberduck permet commodément de calculer la taille d’un seau ou d’un dossier.

1
Evgeny Goldin

La réponse de Mini John a totalement fonctionné pour moi! Génial ... a dû ajouter 

--region eu-west-1 

de l'Europe si

1
pitxon_net

s3 admin est une application open source qui vous permet de parcourir les compartiments, de calculer la taille totale et d’afficher les fichiers les plus volumineux. Il est conçu pour avoir un aperçu rapide de vos seaux et de leur utilisation.

0
maksion

Vous pouvez également le faire via un client S3 si vous préférez une interface utilisateur conviviale. 

J'utilise CrossFTP , qui est gratuit et multiplate-forme. Vous pouvez y cliquer avec le bouton droit de la souris sur le répertoire du dossier -> sélectionner "Propriétés ..." -> cliquer sur le bouton "Calculer" en regard de Taille et le tour est joué.

0
Yiannis Tsimalis

Vous avez demandé: des informations dans la console AWS sur la quantité d'espace disque utilisée sur mon cloud S3 ?

Je tellement au Billing Dashboard et vérifie l'utilisation de S3 dans la facture actuelle.

Ils vous donnent les informations - MTD - en Go à 6 décimales, IOW, jusqu'au niveau Kb.

Il est ventilé par région, mais il est assez facile de les additionner (en supposant que vous utilisiez plus d'une région).

BTW: Vous aurez peut-être besoin d'autorisations IAM spécifiques pour accéder aux informations de facturation.

0
Danny Schoemann