2016-06-12 8 views
1

私はファイルシステムにオブジェクトを漬け込み、それらのオブジェクトを扱う必要があるときにそれらを読み返してきました。現在、私はその目的のためにこのコードを持っています。pythonオブジェクトをGoogleのクラウドストレージに移す

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 

は、今私は、Googleのアプリエンジンに私のapplictation(ジャンゴ)に移動し、アプリエンジンは、私は、ファイルシステムへの書き込みを許可しないことを考え出しています。 Googleのクラウドストレージは私の唯一の選択肢に見えましたが、クラウドストレージオブジェクトとしてオブジェクトをピクルして元のpythonオブジェクトを作成する方法を理解できませんでした。

答えて

3

Cloud Storage client libraryを使用できます。

代わりのopen()は(gcsとしてcloudstorageをインポートする場合は、上述したDOCのように、又はgcs.open()cloudstorage.open()を使用して、完全なファイルパスが(DIRなど)GCSバケット名で始まることに注意してください。

詳細はcloudstorage.open() documentationを参照してください。

+0

お時間をありがとうございます。私はそれを試してみると、私は何か問題に直面している場合は知らせる。 –

+0

それはうまくいった!私は、アプリケーションエンジンdevのサーバーを介して私のアプリケーションを実行する必要がありました。バケツ内のファイルはブラウザで見ることができませんが、プログラムで読むことができます。ブラウザでこれらのファイルを表示するにはどうすればよいですか? –

+1

私はまだGCSを使っていませんでしたので、テストすることはできませんが、これは役に立ちます:http://stackoverflow.com/questions/25110110/local-storage-browser-for-google-cloud-storage-and- dev-appserver-py –