2016-06-12 6 views
1

Ich habe die Objekte in das Dateisystem eingelegt und sie wieder gelesen, wenn nötig, um mit diesen Objekten zu arbeiten. Zur Zeit habe ich diesen Code für diesen Zweck.Picking Python-Objekte in Google Cloud-Speicher

def pickle(self, directory, filename): 
    if not os.path.exists(directory): 
     os.makedirs(directory) 
    with open(directory + '/' + filename, 'wb') as handle: 
     pickle.dump(self, handle) 

@staticmethod 
def load(filename): 
    with open(filename, 'rb') as handle: 
     element = pickle.load(handle) 
    return element 

Jetzt ist mein applictation (django) zu Google App Engine und dachte, ich bin bewegt, dass App Engine mir nicht erlaubt, zu schreiben System Datei. Google Cloud-Speicher schien meine einzige Wahl zu sein, aber ich konnte nicht verstehen, wie ich meine Objekte als Cloud-Speicherobjekte picken und zurücklesen könnte, um das ursprüngliche Python-Objekt zu erstellen.

Antwort

3

Sie können die Cloud Storage client library verwenden.

Statt open() Verwendung cloudstorage.open() (oder gcs.open() wenn cloudstorage als gcs, wie in dem oben erwähnten Dokument importieren) und beachten Sie, dass der vollständige Dateipfad mit dem Eimer Namen GCS beginnt (als dir).

Weitere Details in der cloudstorage.open() documentation.

+0

Danke für Ihre Zeit @Dan. Ich werde es versuchen und Sie wissen lassen, ob ich irgendwelche Probleme habe. –

+0

Das hat funktioniert! Ich musste meine Anwendung über den App Engine-Dev-Server ausführen. Obwohl ich die Dateien im Bucket über den Browser nicht sehen kann, kann ich sie über das Programm lesen. Was soll ich tun, um diese Dateien im Browser anzuzeigen? –

+1

Ich habe GCS noch nicht benutzt, daher kann ich nicht testen, aber das könnte helfen: http://stackoverflow.com/questions/25110110/local-storage-browser-for-google-cloud-storage-and- dev-appserver-py –