J'ai un compte AWS. J'utilise S3 pour stocker des sauvegardes de différents serveurs. La question est-elle qu'il y a des informations dans la console AWS sur la quantité d'espace disque utilisée dans mon cloud S3?
J'ai un compte AWS. J'utilise S3 pour stocker des sauvegardes de différents serveurs. La question est-elle qu'il y a des informations dans la console AWS sur la quantité d'espace disque utilisée dans mon cloud S3?
Réponses:
Yippe - une mise à jour de l'AWS CLI vous permet de passer récursivement à travers des buckets ...
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
Important: vous devez spécifier à la fois StorageType et BucketName dans l'argument dimensions, sinon vous n'obtiendrez aucun résultat.
Je ne sais pas quand cela a été ajouté à l'AWSCLI étant donné que la question d'origine remontait à 3 ans, mais l'outil de ligne de commande donne un bon résumé en exécutant:
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
Pour connaître la taille du compartiment S3 à l'aide de AWS Console:
J'espère que cela t'aides.
ls
ce qui n'est pas le cas pour les solutions basées sur ces derniers.
s3cmd peut vous le montrer en exécutant s3cmd du
, en passant éventuellement le nom du compartiment comme argument.
L'AWS CLI prend désormais en charge le --query
paramètre qui prend une expression JMESPath .
Cela signifie que vous pouvez additionner les valeurs de taille données en list-objects
utilisant sum(Contents[].Size)
et compter comme length(Contents[])
.
Cela peut être exécuté à l'aide de l'AWS CLI officielle 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[])]"
In function sum(), invalid type for value: None, expected one of: ['array-number'], received: "null"
Sinon, la requête fonctionne très bien!
Sur les boîtes Linux qui ont python
(avec le pip
programme d' installation) grep
et awk
, installez AWS CLI (outils de ligne de commande pour EC2, S3 et de nombreux autres services)
sudo pip install awscli
puis créez un .awssecret
fichier dans votre dossier personnel avec le contenu ci-dessous (ajustez la clé, le secret et la région si nécessaire):
[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>
Rendez ce fichier en lecture-écriture pour votre utilisateur uniquement:
sudo chmod 600 .awssecret
et exportez-le dans votre environnement
export AWS_CONFIG_FILE=/home/<your_name>/.awssecret
puis exécutez dans le terminal (il s'agit d'une commande sur une seule ligne, séparée par \
pour une lecture facile 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"}'
aws
partie répertorie le seau (ou éventuellement un 'sous-dossier')grep
pièce supprime (en utilisant -v
) les lignes qui correspondent à l'expression régulière (en utilisant -E
). ^$
est pour la ligne vide, --
est pour les lignes de séparation dans la sortie deaws s3 ls
awk
ajoute simplement à total
la 3ème colonne de la sortie résultante (la taille en Ko) puis l'affiche à la finREMARQUE cette commande fonctionne pour le compartiment ou le 'dossier' actuel, pas de manière récursive
Cloud Watch vous permet également de créer des métriques pour votre compartiment S3. Il vous montre les métriques par taille et nombre d'objets. Services> Outils de gestion> Veille cloud. Choisissez la région où se trouve votre compartiment S3 et les métriques de taille et de nombre d'objets figureraient parmi ces métriques disponibles.
Voir /server/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';
?>
echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
est juste là en bas du code source.
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 versions les plus récentes et les versions archivées.
Obtenir une grande taille de buckets via l'API (aws cli ou s4cmd) est assez lent. Voici mon HowTo expliquant comment analyser le rapport d'utilisation S3 à l' aide de bash one liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
La console AWS ne vous montrera pas cela, mais vous pouvez utiliser Bucket Explorer ou Cloudberry Explorer pour obtenir la taille totale d'un bucket. Les deux ont des versions gratuites disponibles.
Remarque: ces produits doivent toujours avoir la taille de chaque objet individuel, cela peut donc prendre beaucoup de temps pour les seaux contenant beaucoup d'objets.
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 de calculer facilement la taille d'un seau ou d'un dossier.
La réponse de Mini John a totalement fonctionné pour moi! Génial ... a dû ajouter
--region eu-west-1
de l'Europe cependant
C'est une vieille enquête, mais comme je cherchais la réponse, je l'ai parcourue. Certaines des réponses m'ont rappelé que j'utilisais le navigateur S3 pour gérer les données. Vous pouvez cliquer sur un seau et cliquer sur les propriétés et cela vous montre le total. Assez simple. Je recommande vivement le navigateur: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Eh bien, vous pouvez le faire également via un client S3 si vous préférez une interface utilisateur conviviale.
J'utilise CrossFTP , qui est gratuit et multiplateforme, et là vous pouvez faire un clic droit sur le répertoire du dossier -> sélectionner "Propriétés ..." -> cliquer sur le bouton "Calculer" à côté de Taille et le tour est joué.
s3admin est une application open source (UI) qui vous permet de parcourir les buckets, de calculer la taille totale, d'afficher les fichiers les plus grands / plus petits. Il est conçu pour avoir un aperçu rapide de vos godets et de leur utilisation.
Vous avez demandé: des informations dans la console AWS sur la quantité d'espace disque utilisée sur mon cloud S3 ?
Je vais donc au tableau de bord de facturation et vérifie l'utilisation de S3 dans la facture actuelle .
Ils vous donnent les informations - MTD - en Go à 6 décimales, IOW, au niveau Kb.
Il est ventilé par région, mais les additionner (en supposant que vous utilisiez plus d'une région) est assez facile.
BTW: vous aurez peut-être besoin d'autorisations IAM spécifiques pour accéder aux informations de facturation.
J'utilise Cloud Turtle pour obtenir la taille des seaux individuels. Si la taille du bucket dépasse> 100 Go, cela prendrait un certain temps pour afficher la taille. Cloud tortue est un logiciel gratuit.