Python-GAE - Wie um zu überprüfen, ob Datei existiert im Google cloud-Speicher
Ich habe ein Skript, wo ich will, um zu überprüfen, ob eine Datei existiert, in einen Eimer und wenn nicht dann erstellen.
Versuchte ich mit os.path.exists(file_path)
wo file_path = "/gs/testbucket"
. Aber ich bekomme ein file not found error.
Ich weiß, dass ich das files.listdir()
- API-Funktion, um eine Liste der Dateien, die sich auf einem Pfad und dann prüfen, ob die Datei, die ich will, ist einer von Ihnen. Aber ich Frage mich, ob es einen anderen Weg, um zu überprüfen, ob die Datei vorhanden ist.
- +1 lief in dieser selbst. Wir schließlich aufgewickelt tun einem HTTP-KOPF auf die öffentliche Adresse der Datei, aber das ist nicht eine Allgemeine Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Beitrag ist alt, Sie kann jetzt eigentlich überprüfen, ob eine Datei vorhanden ist GCP mit der blob-Klasse, aber weil es dauerte eine Weile, um eine Antwort zu finden, hinzufügen hier für die anderen, die auf der Suche nach einer Lösung
Dokumentation ist hier
Hoffe, das hilft!
stats = storage.Blob(bucket=bucket, name="folder_1/another_folder_2/your_file.txt").exists(storage_client)
Es ist so einfach wie das verwenden der exists-Methode in ein blob-Objekt:
Können Sie die stat-Funktion, um eine Datei-info. Dies wird in der Praxis machen einen HEAD-request an die google-cloud-Speicher statt einer BEKOMMEN, der ein bisschen weniger ressourcenintensiv.
Leichte variation auf Amit die Antwort von vor ein paar Jahren, aktualisiert werden, damit der cloudstorage-api.
Ich denke, es gibt keine Funktion prüfen Sie direkt, ob die Datei vorhanden ist, gegeben, seinen Pfad.
Habe ich eine Funktion verwendet, die die
files.listdir()
- API-Funktion, um eine Liste aller Dateien im Eimer und das match gegen den Namen der Datei, die wir wollen. Es gibt true zurück, wenn gefunden, und false, wenn nicht.Können Sie benutzerdefinierte Funktion (siehe unten), um zu überprüfen Datei vorhanden ist oder nicht
die oben genannten Funktion in folgender Weise
Hinweis: in der oben genannten Funktion erhalten Sie möglicherweise auch die Folge als 'Nein', wenn die Berechtigung "Lesen" nicht gegeben, um die Anwendung, die versucht, die Datei zu Lesen.
Ja! Es posible! aus diesem
Und das ist mein code:
Die Datei, die ich Suche, die auf google cloud-Speicher: init.sh
Vollständiger Pfad: gs://cw-data/spark_app_code/init.sh
Hier, die Dateien werden nicht gespeichert, in der Sie gespeichert sind, auf lokale Dateisysteme, sondern Sie gespeichert sind, als Schlüssel. Also, während der Suche die Datei auf google-storage absoluten Pfad anstatt nur den Dateinamen.
Wenn Sie arbeiten mit gcs-Dateien auf einem Dienst wie ml-engine, verwenden Sie tensorflow um zu überprüfen, ob eine Datei vorhanden ist oder nicht:
Wenn Sie auf der Suche nach einer Lösung in NodeJS, dann hier ist es:
Wenn Sie weitere Hilfe benötigen, finden Sie in diesem Dokument:
https://cloud.google.com/nodejs/docs/reference/storage/1.5.x/File#exists