[PYTHON] [AWS S3] Bestätigung des Vorhandenseins von Ordnern in S3

Überblick

Ein Ordner in S3, der die boto3-Bibliothek verwendet, die ein API-Wrapper für Python to AWS ist [^ 1] Oder ich habe eine Funktion geschrieben, um zu überprüfen, ob die Datei existiert.

Motivation

Es gab einen Prozess, den ich durch das Vorhandensein oder Fehlen eines Ordners in S3 unterscheiden wollte, aber im Internet ist es ein Prozess, der boto2 und eine Funktion verwendet, die derzeit nicht implementiert ist, oder er kann nur für "Dateien" in S3 verwendet werden Es gab nur wenige Methoden und es gab fast kein Existenzurteil für "Ordner".

Also habe ich es selbst gemacht.

Codebeispiel

import boto3
from botocore.exceptions import ClientError

client = boto3.client('s3')
bucket_name = 'hoge'
key = "fuga/piyo/bar/" # /Ich denke, es ist eine gute Idee, sich damit abzufinden. Es kann nicht notwendig sein. Ich bin mir nicht sicher.

result = client.list_objects(Bucket=bucket_name, Prefix=key)

#Als nächstes kommt Kimo. Wenn der obige Pfad nicht vorhanden ist, werden einige der zurückgegebenen Ergebnisse angezeigt
#Der Schlüssel namens Inhalt existiert nicht. Wenn Sie dies verwenden, können Sie die Existenz beurteilen.
if "Contents" in result:
    exists = True
else:
    exists = False

[^ 1]: Streng genommen kein Ordner. In S3 wird alles durch eine Kombination von Schlüsseln (wie Pfade) und Werten (Inhalt der Datei) verwaltet, wie in einem Wörterbuch in Python. In S3 wird der Schlüssel zufällig durch ein / Trennzeichen wie ein Pfad dargestellt, und im Browser interpretiert der AWS-Viewer ihn nur gut mit einem / Trennzeichen.

Recommended Posts

[AWS S3] Bestätigung des Vorhandenseins von Ordnern in S3
Existenz aus Sicht von Python
Untersuchen Sie die Auswirkung von Ausreißern auf die Korrelation
Überprüfen Sie die Existenz der Datei mit Python
Veröffentlichen Sie das Thema Google Mail auf Twitter
[AWS] Beurteilen Sie die Existenz von Next Token und nehmen Sie alle Werte [boto3]
Zeigen Sie das Diagramm von tensorBoard auf jupyter an
Ändern Sie die Reihenfolge von PostgreSQL in Heroku
Bereiten Sie die Umgebung von Chainer auf der EC2-Spot-Instanz mit AWS Lambda vor
Laden Sie Daten mit einem Befehl und einer Aktualisierung auf s3 von aws hoch und löschen Sie die verwendeten Daten (unterwegs).
Ändern Sie den Objektschlüssel in S3 vom normalen Datumsformat in das Hive-Format
[Linux] Überprüfung der Befehle für die Bereitstellung unter AWS
Das Verhalten von signal () hängt von der Kompilierungsoption ab
[2020Juli] Überprüfen Sie die UDID des iPad unter Linux
Verwenden Sie die neueste Version von PyCharm unter Ubuntu
Berechnen Sie die Wahrscheinlichkeit von Ausreißern auf den Box-Whiskern
Zum Zeitpunkt des Python-Updates mit Ubuntu
Ändern Sie die Auflösung von Ubuntu, das auf VirtualBox ausgeführt wird
Jupyter auf AWS
Installieren Sie die neueste Version von CMake unter Ubuntu 18.04.4 LTS
Vielleicht habe ich die Auswirkungen von Shell Shock auf CGI überschätzt
[AWS CLI] Aktivieren Sie die AWS CLI unter Red Hat Enterprise Linux 8
Versuchen Sie, die Anzahl der Likes auf Twitter zu schätzen
Zeichnen auf Jupyter mit der Plot-Funktion von Pandas
Unterstützung für Python 2.7-Laufzeit auf AWS Lambda (ab 2020.1)
Tweet die dreifache Vorhersage des Bootsrennens auf Twitter
Überprüfen Sie, ob in Java BigQuery-Tabellen vorhanden sind
Scrollen Sie mit Japanisch zur LED von RaspberryPi Sense HAT
Eine Überlegung zur Visualisierung des Anwendungsbereichs des Vorhersagemodells
Ankündigung der Verfügbarkeit von Java 11 LTS unter Amazon Linux 2