2012-09-05 100 views
2

我對GAE和網頁開發一般都很陌生,我正在嘗試使用GAE BlobStore。我使用python似乎無法找到將大量文件上傳到BlobStore的任何資源。將100萬張圖片上傳到BlobStore

我已經閱讀了一些資源和例子,但它們中沒有一個似乎對這個特殊問題有幫助。

有沒有人有關於此的任何資源或經驗?

回答

3

在我的項目中,當從專用服務器移動到appengine時,我有類似的需求。 我們沒有移動100萬,但它是大約100000.

它花了一些時間,但最終完成。

它使用非常簡單的解決方案完成。剛剛創建了一個文件上傳服務,就像on blogstore docs中的例子。

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def get(self): 
    upload_url = blobstore.create_upload_url('/upload') 
    self.response.write(upload_url) 

    def post(self): 
    upload_files = self.get_uploads('file') 
    blob_info = upload_files[0] 
    self.response.write(blob_info.key()) 

然後使用上傳腳本從本地主機上傳文件。

這樣的腳本可以通過find,curlxargs的組合編寫在Python或甚至shell腳本中。

爲了加速使用多個線程並在paralel中完成32個上傳幫助。

爲了健壯性,上傳文件後,我們可以嘗試下載並比較尺寸/ md5,並在出現問題時重新上傳。

3

我們將根據您計劃如何使用圖片將圖片上傳到Google Storage,並使用gsutil從AppEngine應用程序訪問它們。如果有可恢復的上傳和multithreading更快的上傳。

否則,您需要使用create_upload_url,並由於this錯誤而自行批量處理小於500個文件。