Wie extrahiere ich eine Liste aller Ordner meines AWS S3-Speicher-Buckets oder -Verzeichnisse?

Wie extrahiere ich eine Liste aller Ordner meines AWS S3-Speicher-Buckets oder -Verzeichnisse?

Bietet Amazon eine einfache Möglichkeit, aus einem S3-Bucket eine Liste aller Ordner mit Dateien über 500 MB zu extrahieren? Ich möchte den Umfang auch auf die Verzeichnisse „/files/ftp_upload/“ beschränken. So kann ich meine Kosten usw. berechnen.

Ich habe das versucht, aber es hilft nicht viel

aws s3 ls s3://YOUR_BUCKET/YOUR_FOLDER/ --recursive --human-readable --summarize

was ist hier die beste Vorgehensweise?

Antwort1

S3 hat kein Konzept für „Ordner“. Die Konsole stellt die Daten nur wie Ordner in der Konsole dar, indem sie Objektschlüssel am Schrägstrich („/“) aufteilt. Um Daten nach „Ordnern“ zusammenzufassen, müsste also der Schlüssel jedes Objekts analysiert werden.

Sie könnten ALLE Daten für Objekte abrufen, die mit Ihrem Schlüsselpräfix übereinstimmen, und diese dann mit logischen und mathematischen Berechnungen zusammenfassen, aber das ist eine Menge Arbeit.

Wenn Sie die Daten nicht in Echtzeit benötigen, ist S3 Inventory möglicherweise eine gute Lösung. Grundsätzlich erhalten Sie eine Liste der Objekte im angegebenen S3-Bucket in einem von drei Formaten: CSV, Apache ORC oder Apache Parquet. Sie können dann auf der Grundlage der Daten viel einfachere Berechnungen durchführen.

Der Nachteil von S3 Inventory besteht darin, dass es ungefähr einen Tag dauert, bis der Bericht vorliegt, und dass er nicht in Echtzeit erfolgt.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html

-- Wenn Sie nach einer einfacheren Möglichkeit suchen, Kosten zu verwalten, möchten Sie den Anwendungsfall möglicherweise aufteilen und für jeden einen S3-Bucket verwenden. Dann können Sie Kostenzuordnungs-Tags auf Bucket-Ebene verwenden.

Auch die S3-Auslastungsberichte sind hilfreich, um zu bestimmen, ob Sie eine andere Speicherklasse verwenden sollten.

verwandte Informationen