AWS S3: Comment puis-je voir combien d'espace disque est utilisé
j'ai un compte AWS. J'utilise S3 pour stocker des sauvegardes de différents serveurs. La question Est-ce qu'il y a des informations dans la console AWS sur la quantité de disque que spase utilise sur mon nuage S3?
Merci
16 réponses
Yippe - une mise à jour à AWS CLI vous permet de ls récursivement à travers des seaux...
aws s3 ls s3://<bucketname> --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=}END{print total/1024/1024" MB"}'
Je ne suis pas sûr quand cela a été ajouté à L'AWSCLI étant donné que la question originale était Il ya 3 ans, mais l'outil en ligne de commande donne un bon résumé en exécutant:
aws s3 ls s3://mybucket --recursive --human-readable --summarize
L'AWS CLI supporte maintenant le paramètre --query
qui prend une expression JMESPath .
cela signifie que vous pouvez additionner les valeurs de taille données par list-objects
en utilisant sum(Contents[].Size)
et compter comme length(Contents[])
.
cela peut être exécuté en utilisant L'AWS CLI officiel comme ci-dessous et a été introduit dans février 2014
aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"
pour connaître la taille du godet S3 en utilisant la Console AWS:
- cliquez sur le nom du seau S3
- sélectionnez "onglet" Gestion
- cliquez sur" Metrics "bouton de navigation
- par défaut, vous devriez voir la métrique de stockage du seau
Espérons que cette aide.
sur la boîte linux qui ont python
(avec pip
installer), grep
et awk
, installer AWS CLI (outils en ligne de commande pour EC2, S3 et de nombreux autres services)
sudo pip install awscli
créez ensuite un fichier .awssecret
dans votre dossier personnel avec le contenu ci-dessous (réglez la clé, le secret et la région au besoin):
[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>
faites ce fichier Lire-écrire à votre Utilisateur seulement:
sudo chmod 600 .awssecret
et l'exporter à votre environnement
export AWS_CONFIG_FILE=/home/<your_name>/.awssecret
puis exécuter dans le terminal (c'est une commande en ligne simple, 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+=}END{print total/1024/1024" MB"}'
- la partie
aws
liste le seau (ou éventuellement un 'sous-dossier') - la partie
grep
supprime (en utilisant-v
) les lignes qui correspondent à l'Expression régulière (en utilisant-E
).^$
est pour la ligne blanche,--
est pour les lignes de séparation dans la sortie deaws s3 ls
- le dernier
awk
simplementtotal
de la 3ème colonne de la sortie (la taille en KO), puis de l'afficher à la fin
NOTE cette commande fonctionne pour le courant seau ou un "dossier", et non pas de manière récursive
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';
?>
Cloud watch vous permet également de créer des paramètres pour votre seau S3. Il vous montre 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 seau S3 et les paramètres de taille et de nombre d'objets seront parmi les paramètres disponibles.
Arriver grands seaux taille via l'API (aws cli ou s4cmd) est assez lente. Voici mon HowTo expliquant comment analyser le rapport D'utilisation de S3 utilisant bash one liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", /(1024**3 )/24, , }' | sort -n
en plus de la réponse de Christopher.
si vous avez besoin de compter la taille totale du seau versionné utiliser:
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.
la console AWS ne vous montrera pas cela, mais vous pouvez utiliser Bucket Explorer ou Cloudberry Explorer pour obtenir la taille totale d'un seau. Les deux versions sont disponibles gratuitement.
Remarque: ces produits ont encore pour obtenir la taille de chaque objet, de sorte qu'il pourrait prendre un certain temps pour les seaux avec 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+=}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]
aussi, Cyberduck permet commodément le calcul de la taille pour un seau ou un dossier.
Mini John 's réponse totalement fonctionné pour moi! Impressionnant... il fallait ajouter
--region eu-west-1
de l'Europe, même si les
c'est une vieille enquête, mais comme je cherchais la réponse, je suis tombé dessus. Certaines réponses m'ont rappelé que j'utilise le navigateur S3 pour gérer les données. Vous pouvez cliquer sur un seau et frapper propriétés et il 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 aussi par l'intermédiaire d'un client S3 si vous préférez une interface utilisateur conviviale.
j'utilise CrossFTP , qui est libre et multiplate-forme, et là vous pouvez Droit-cliquer sur le répertoire de dossiers -> sélectionner " Propriétés..."- >cliquez sur" Calculer " bouton à côté de la taille et voila.
j'utilise Nuage de Tortue pour obtenir la taille de chacune des seaux. Si la taille du seau dépasse >100 Go, alors il faudrait un certain temps pour afficher la taille. Cloud turtle est un logiciel libre.