À moins que je ne manque quelque chose, il semble qu'aucune des API que j'ai examinées ne vous dira combien d'objets se trouvent dans un compartiment / dossier S3 (préfixe). Existe-t-il un moyen d'obtenir un décompte?
file
count
amazon-s3
amazon-web-services
des champs
la source
la source
Réponses:
Il n'y a aucun moyen, sauf si vous
listez-les tous par lots de 1000 (ce qui peut être lent et sucer la bande passante - Amazon semble ne jamais compresser les réponses XML), ou
connectez-vous à votre compte sur S3 et accédez à Compte - Utilisation. Il semble que le service de facturation sache exactement combien d'objets vous avez stockés!
Le simple téléchargement de la liste de tous vos objets prendra en fait du temps et coûtera de l'argent si vous avez 50 millions d'objets stockés.
Voir également ce fil sur StorageObjectCount - qui se trouve dans les données d'utilisation.
Une API S3 pour obtenir au moins les bases, même si elle avait des heures, serait géniale.
la source
Utilisation de l'AWS CLI
ou
Remarque: la commande cloudwatch ci-dessus semble fonctionner pour certains, mais pas pour d'autres. Discuté ici: https://forums.aws.amazon.com/thread.jspa?threadID=217050
Utilisation d'AWS Web Console
Vous pouvez consulter la section métrique de cloudwatch pour obtenir un nombre approximatif d'objets stockés.
J'ai environ 50 millions de produits et il a fallu plus d'une heure pour compter en utilisant
aws s3 ls
la source
aws s3 ls s3://mybucket/mydirectory/ --recursive | wc -l
Il existe un
--summarize
commutateur qui inclut des informations récapitulatives sur le compartiment (c'est-à-dire le nombre d'objets, la taille totale).Voici la bonne réponse en utilisant AWS cli:
Voir la documentation
la source
Total Objects: 7235
Total Size: 475566411749
- si facile.Bien que cette question soit ancienne et que des commentaires aient été fournis en 2015, pour le moment, c'est beaucoup plus simple, car la console Web S3 a activé une option "Obtenir la taille":
Qui fournit ce qui suit:
la source
Si vous utilisez l' outil de ligne de commande s3cmd , vous pouvez obtenir une liste récursive d'un compartiment particulier, en la générant dans un fichier texte.
Ensuite, sous Linux, vous pouvez exécuter un wc -l sur le fichier pour compter les lignes (1 ligne par objet).
la source
-r
commande dans la commande est pour--recursive
, donc cela devrait également fonctionner pour les sous-dossiers.aws s3 ls
plutôt que s3cmd car c'est plus rapide. b.) Pour les grands seaux, cela peut prendre beaucoup de temps. Il a fallu environ 5 minutes pour les fichiers de 1 mil. c.) Voir ma réponse ci-dessous sur l'utilisation de cloudwatch.Il existe maintenant une solution simple avec l'API S3 (disponible dans AWS cli):
ou pour un dossier spécifique:
la source
Illegal token value '(Contents[])]'
J'obtiens (version 1.2.9 de aws-cli), lorsque je suis juste en train d'utiliser--bucket my-bucket
etA client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist
quand je l' utilise--bucket s3://my-bucket
. (Il existe définitivement et contient plus de 1000 fichiers.)Vous pouvez utiliser les métriques AWS cloudwatch pour s3 pour voir le nombre exact de chaque compartiment.
la source
Accédez à AWS Billing, puis aux rapports, puis aux rapports d'utilisation AWS. Sélectionnez Amazon Simple Storage Service, puis Operation StandardStorage. Ensuite, vous pouvez télécharger un fichier CSV qui inclut un UsageType de StorageObjectCount qui répertorie le nombre d'éléments pour chaque compartiment.
la source
Vous pouvez facilement obtenir le décompte total et l'historique si vous allez dans l'onglet "Gestion" de la console s3 puis cliquez sur "Métriques" ... Capture d'écran de l'onglet
la source
NumberOfObjects (count/day)
graphique? Ce serait mieux puisque c'est directement lié à la question. Dans votre capture d'écran, vous montrez ceBucketSizeBytes (bytes/day)
qui, bien qu'utile, n'est pas directement lié au problème.L'API renverra la liste par incréments de 1000. Vérifiez la propriété IsTruncated pour voir s'il y en a encore plus. Si tel est le cas, vous devez effectuer un autre appel et passer la dernière clé que vous avez obtenue comme propriété Marker lors du prochain appel. Vous continueriez alors à boucler comme ceci jusqu'à ce que IsTruncated soit faux.
Voir ce document Amazon pour plus d'informations: Itérer des résultats multi-pages
la source
Ancien fil, mais toujours pertinent car je cherchais la réponse jusqu'à ce que je viens de comprendre cela. Je voulais un nombre de fichiers en utilisant un outil basé sur l'interface graphique (c'est-à-dire pas de code). Il se trouve que j'utilise déjà un outil appelé 3Hub pour les transferts par glisser-déposer vers et depuis S3. Je voulais savoir combien de fichiers j'avais dans un compartiment particulier (je ne pense pas que la facturation le décompose en compartiments).
J'avais 20521 fichiers dans le seau et j'ai fait le décompte des fichiers en moins d'une minute.
la source
J'ai utilisé le script python de scalablelogic.com (en ajoutant la journalisation du comptage). A très bien fonctionné.
la source
Dans s3cmd, exécutez simplement la commande suivante (sur un système Ubuntu):
la source
Si vous utilisez l'AWS CLI sous Windows, vous pouvez utiliser le
Measure-Object
de PowerShell pour obtenir le nombre total de fichiers, commewc -l
sur * nix.J'espère que ça aide.
la source
L'un des moyens les plus simples de compter le nombre d'objets dans s3 est:
Étape 1: Sélectionnez le dossier racine Étape 2: Cliquez sur Actions -> Supprimer (évidemment, faites attention à ne pas le supprimer) Étape 3: Attendez quelques minutes aws vous montrera le nombre d'objets et sa taille totale.
UpVote si vous trouvez la solution.
la source
Aucune des API ne vous donnera un décompte car il n'y a vraiment pas d'API spécifique à Amazon pour le faire. Vous devez simplement exécuter une liste-contenu et compter le nombre de résultats renvoyés.
la source
À partir de la ligne de commande dans AWS CLI, utilisez
ls plus --summarize
. Il vous donnera la liste de tous vos éléments et le nombre total de documents dans un compartiment particulier. Je n'ai pas essayé cela avec des seaux contenant des sous-seaux:Cela prend un peu de temps (il a fallu environ 4 minutes pour lister mes documents 16 + K), mais c'est plus rapide que de compter 1K à la fois.
la source
Qu'en est-il de l'analyse de classe de stockage S3 - Vous obtenez des API ainsi que sur la console - https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html
la source
3Hub est interrompu. Il existe une meilleure solution, vous pouvez utiliser Transmit (Mac uniquement), puis il vous suffit de vous connecter à votre bucket et de choisir
Show Item Count
dans leView
menu.la source
Vous pouvez télécharger et installer le navigateur s3 à partir de http://s3browser.com/ . Lorsque vous sélectionnez un compartiment dans le coin central droit, vous pouvez voir le nombre de fichiers dans le compartiment. Mais la taille affichée est incorrecte dans la version actuelle.
Gubs
la source
Le moyen le plus simple est d'utiliser la console développeur, par exemple, si vous êtes sur chrome, choisissez Outils de développement, et vous pouvez voir ce qui suit, vous pouvez soit trouver et compter, soit faire une correspondance, comme 280-279 + 1 = 2
...
la source
Vous pouvez potentiellement utiliser l'inventaire Amazon S3 qui vous donnera la liste des objets dans un fichier csv
la source
J'ai trouvé l'outil de navigateur S3 très utilisateur, il fournit des fichiers et des dossiers et le nombre total ainsi que la taille de tout dossier de manière récursive
Lien de téléchargement: https://s3browser.com/download.aspx
la source
Peut également être fait avec
gsutil du
(Oui, un outil Google Cloud)la source
Vous pouvez simplement exécuter cette commande cli pour obtenir le nombre total de fichiers dans le compartiment ou dans un dossier spécifique
Analyser le seau entier
vous pouvez utiliser cette commande pour obtenir des détails
Analyser un dossier spécifique
la source
Si vous recherchez des fichiers spécifiques, disons des
.jpg
images, vous pouvez effectuer les opérations suivantes:la source
Voici comment vous pouvez le faire en utilisant le client java.
la source
Voici la version boto3 du script python intégré ci-dessus.
la source
aws s3 ls s3: // nom-compartiment / préfixe-dossier-s'il-y-a-un --recursive | wc -l
la source