我對GAE和網頁開發一般都很陌生,我正在嘗試使用GAE BlobStore。我使用python似乎無法找到將大量文件上傳到BlobStore的任何資源。將100萬張圖片上傳到BlobStore
我已經閱讀了一些資源和例子,但它們中沒有一個似乎對這個特殊問題有幫助。
有沒有人有關於此的任何資源或經驗?
我對GAE和網頁開發一般都很陌生,我正在嘗試使用GAE BlobStore。我使用python似乎無法找到將大量文件上傳到BlobStore的任何資源。將100萬張圖片上傳到BlobStore
我已經閱讀了一些資源和例子,但它們中沒有一個似乎對這個特殊問題有幫助。
有沒有人有關於此的任何資源或經驗?
在我的項目中,當從專用服務器移動到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
,curl
和xargs
的組合編寫在Python或甚至shell腳本中。
爲了加速使用多個線程並在paralel中完成32個上傳幫助。
爲了健壯性,上傳文件後,我們可以嘗試下載並比較尺寸/ md5,並在出現問題時重新上傳。
我們將根據您計劃如何使用圖片將圖片上傳到Google Storage,並使用gsutil從AppEngine應用程序訪問它們。如果有可恢復的上傳和multithreading更快的上傳。
否則,您需要使用create_upload_url,並由於this錯誤而自行批量處理小於500個文件。