Sofern mir nichts fehlt, scheint Ihnen keine der von mir untersuchten APIs zu sagen, wie viele Objekte sich in einem S3-Bucket / Ordner (Präfix) befinden. Gibt es eine Möglichkeit, eine Zählung zu erhalten?
file
count
amazon-s3
amazon-web-services
Felder
quelle
quelle
Antworten:
Es gibt keinen Weg, außer Sie
Listen Sie sie alle in Stapeln von 1000 auf (was langsam sein und Bandbreite verbrauchen kann - Amazon scheint die XML-Antworten niemals zu komprimieren), oder
Melden Sie sich bei S3 in Ihrem Konto an und gehen Sie zu Konto - Nutzung. Anscheinend weiß die Rechnungsabteilung genau, wie viele Objekte Sie gespeichert haben!
Das einfache Herunterladen der Liste aller Ihrer Objekte nimmt tatsächlich einige Zeit in Anspruch und kostet etwas Geld, wenn Sie 50 Millionen Objekte gespeichert haben.
Siehe auch diesen Thread zu StorageObjectCount - der in den Nutzungsdaten enthalten ist.
Eine S3-API, um zumindest die Grundlagen zu erhalten, selbst wenn sie Stunden alt wäre, wäre großartig.
quelle
Verwenden der AWS CLI
oder
Hinweis: Der obige Cloudwatch-Befehl scheint für einige zu funktionieren, für andere nicht. Hier besprochen: https://forums.aws.amazon.com/thread.jspa?threadID=217050
Verwenden der AWS Web Console
Sie können sich den Metrikabschnitt von Cloudwatch ansehen , um die ungefähre Anzahl der gespeicherten Objekte zu erhalten.
Ich habe ungefähr 50 Millionen Produkte und es dauerte mehr als eine Stunde, um mit zu zählen
aws s3 ls
quelle
aws s3 ls s3://mybucket/mydirectory/ --recursive | wc -l
Es gibt einen
--summarize
Schalter, der Informationen zur Bucket-Zusammenfassung enthält (dh Anzahl der Objekte, Gesamtgröße).Hier ist die richtige Antwort mit AWS cli:
Siehe die Dokumentation
quelle
Total Objects: 7235
Total Size: 475566411749
- so einfach.Obwohl dies eine alte Frage ist und 2015 Feedback gegeben wurde, ist es jetzt viel einfacher, da S3 Web Console die Option "Größe abrufen" aktiviert hat:
Welches bietet die folgenden:
quelle
Wenn Sie das Befehlszeilentool s3cmd verwenden, können Sie eine rekursive Liste eines bestimmten Buckets abrufen und in eine Textdatei ausgeben.
Dann können Sie unter Linux ein wc -l für die Datei ausführen, um die Zeilen zu zählen (1 Zeile pro Objekt).
quelle
-r
Befehl in ist für--recursive
, daher sollte er auch für Unterordner funktionieren.aws s3 ls
eher s3cmd als s3cmd verwenden, da es schneller ist. b.) Bei großen Eimern kann es lange dauern. Dauerte ca. 5 min für 1mil Dateien. c.) Siehe meine Antwort unten zur Verwendung von Cloudwatch.Mit der S3-API gibt es jetzt eine einfache Lösung (verfügbar in der AWS-CLI):
oder für einen bestimmten Ordner:
quelle
Illegal token value '(Contents[])]'
(Version 1.2.9 von aws-cli), wenn ich es nur benutze--bucket my-bucket
undA client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist
wenn ich es benutze--bucket s3://my-bucket
. (Es existiert definitiv und hat 1000+ Dateien.)Sie können AWS Cloudwatch-Metriken für s3 verwenden, um die genaue Anzahl für jeden Bucket anzuzeigen.
quelle
Gehen Sie zu AWS Billing, dann zu Berichten und dann zu AWS Usage-Berichten. Wählen Sie Amazon Simple Storage Service und dann Operation StandardStorage. Anschließend können Sie eine CSV-Datei herunterladen, die einen UsageType von StorageObjectCount enthält, in dem die Anzahl der Elemente für jeden Bucket aufgeführt ist.
quelle
Sie können die Gesamtzahl und den Verlauf leicht abrufen, wenn Sie zur Registerkarte "Verwaltung" der s3-Konsole gehen und dann auf "Metriken" klicken ... Screenshot der Registerkarte
quelle
NumberOfObjects (count/day)
Diagramm anzuzeigen? Es wäre besser, da es in direktem Zusammenhang mit der Frage steht. In Ihrem Screenshot zeigen Sie,BucketSizeBytes (bytes/day)
was zwar nützlich ist, aber nicht direkt mit dem Problem zusammenhängt.Die API gibt die Liste in Schritten von 1000 zurück. Überprüfen Sie die IsTruncated-Eigenschaft, um festzustellen, ob noch weitere vorhanden sind. Wenn dies der Fall ist, müssen Sie einen weiteren Anruf tätigen und den letzten Schlüssel, den Sie erhalten haben, beim nächsten Anruf als Marker-Eigenschaft übergeben. Sie würden dann so weitermachen, bis IsTruncated falsch ist.
Weitere Informationen finden Sie in diesem Amazon-Dokument: Durchlaufen mehrseitiger Ergebnisse
quelle
Alter Thread, aber immer noch relevant, da ich nach der Antwort gesucht habe, bis ich das gerade herausgefunden habe. Ich wollte eine Dateizählung mit einem GUI-basierten Tool (dh ohne Code). Ich verwende bereits ein Tool namens 3Hub für Drag & Drop-Übertragungen von und nach S3. Ich wollte wissen, wie viele Dateien ich in einem bestimmten Bucket hatte (ich glaube nicht, dass die Abrechnung ihn nach Buckets aufteilt).
Ich hatte 20521 Dateien im Bucket und zählte die Dateien in weniger als einer Minute.
quelle
Ich habe das Python-Skript von scalablelogic.com verwendet (Hinzufügen der Zählprotokollierung). Hat super funktioniert.
quelle
Führen Sie in s3cmd einfach den folgenden Befehl aus (auf einem Ubuntu-System):
quelle
Wenn Sie AWS CLI unter Windows verwenden, können Sie die
Measure-Object
von PowerShell verwenden, um die Gesamtzahl der Dateien abzurufen, genau wiewc -l
unter * nix.Ich hoffe es hilft.
quelle
Eine der einfachsten Möglichkeiten, die Anzahl der Objekte in s3 zu zählen, ist:
Schritt 1: Wählen Sie den Stammordner aus. Schritt 2: Klicken Sie auf Aktionen -> Löschen (natürlich nicht löschen). Schritt 3: Warten Sie einige Minuten. Aws zeigt Ihnen die Anzahl der Objekte und deren Gesamtgröße an.
UpVote, wenn Sie die Lösung finden.
quelle
Keine der APIs gibt Ihnen eine Zählung, da es dafür wirklich keine Amazon-spezifische API gibt. Sie müssen nur einen Listeninhalt ausführen und die Anzahl der zurückgegebenen Ergebnisse zählen.
quelle
Verwenden Sie in der Befehlszeile in AWS CLI
ls plus --summarize
. Sie erhalten die Liste aller Ihrer Artikel und die Gesamtzahl der Dokumente in einem bestimmten Eimer. Ich habe dies nicht mit Eimern versucht, die Untereimer enthalten:Das dauert etwas länger (das Auflisten meiner 16 + K-Dokumente dauerte ungefähr 4 Minuten), ist aber schneller als das gleichzeitige Zählen von 1K.
quelle
Wie wäre es mit S3-Speicherklassenanalyse - Sie erhalten APIs sowie auf der Konsole - https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html
quelle
3Hub wird eingestellt. Es gibt eine bessere Lösung: Sie können Transmit (nur Mac) verwenden. Dann stellen Sie einfach eine Verbindung zu Ihrem Bucket her und wählen
Show Item Count
aus demView
Menü.quelle
Sie können den s3-Browser von http://s3browser.com/ herunterladen und installieren . Wenn Sie einen Bucket in der mittleren rechten Ecke auswählen, sehen Sie die Anzahl der Dateien im Bucket. Die angezeigte Größe ist jedoch in der aktuellen Version falsch.
Gubs
quelle
Am einfachsten ist es, die Entwicklerkonsole zu verwenden. Wenn Sie beispielsweise auf Chrome arbeiten, wählen Sie "Entwicklertools". Im Folgenden sehen Sie, ob Sie Übereinstimmungen finden und zählen oder durchführen können, z. B. 280-279 + 1 = 2
...
quelle
Sie können möglicherweise Amazon S3-Inventar verwenden, mit dem Sie eine Liste der Objekte in einer CSV-Datei erhalten
quelle
Ich fand das S3-Browser-Tool sehr benutzerfreundlich, es bietet Dateien und Ordner sowie die Gesamtzahl und Größe für jeden Ordner rekursiv
Download-Link: https://s3browser.com/download.aspx
quelle
Kann auch mit
gsutil du
(Ja, einem Google Cloud-Tool) durchgeführt werdenquelle
Sie können diesen Befehl cli einfach ausführen, um die Gesamtanzahl der Dateien im Bucket oder in einem bestimmten Ordner abzurufen
Scannen Sie den gesamten Eimer
Mit diesem Befehl können Sie Details abrufen
Scannen Sie einen bestimmten Ordner
quelle
Wenn Sie nach bestimmten Dateien suchen, beispielsweise nach
.jpg
Bildern, können Sie Folgendes tun:quelle
Im Folgenden erfahren Sie, wie Sie dies mit dem Java-Client tun können.
quelle
Hier ist die boto3-Version des oben eingebetteten Python-Skripts.
quelle
aws s3 ls s3: // Bucket-Name / Ordner-Präfix-falls-irgendein --rekursiv | wc -l
quelle