2

私はGAEとWeb開発全般にまったく慣れていないため、GAE BlobStoreを使用しようとしています。私はpythonを使用していますが、大量のファイルをBlobStoreにアップロードする際にリソースが見つからないようです。

私は多くのリソースと例を読みましたが、この特定の問題に役立つものはないようです.

これに関するリソースや経験はありますか?

4

2 に答える 2

3

画像の使用方法に応じて、画像をGoogle Storageにアップロードし、 gsutilを使用してAppEngineアプリから画像にアクセスできます。アップロードを高速化するための再開可能なアップロードとマルチスレッドがある場合。

それ以外の場合は、このバグのため、 create_upload_urlを使用して、一度に500ファイル未満のバッチで自分でバッチ処理を行う必要があります。

于 2012-09-05T04:11:19.523 に答える
3

専用サーバーから appengine に移行するときに、プロジェクトで同様の要件がありました。100万は動かす必要はありませんでしたが、約100000でした。

時間はかかりましたが、やっと完成。

それはかなり単純なソリューションを使用して行われました。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())

次に、アップロード スクリプトを使用して、localhost からファイルをアップロードします。

findこのようなスクリプトは、 、curl、および を組み合わせて、python またはシェル スクリプトで記述することができますxargs

複数のスレッドを使用して 32 のアップロードを並行して実行すると、スピードアップに役立ちます。

堅牢性のために、ファイルをアップロードした後、ファイルをダウンロードしてサイズ/md5 を比較し、問題が発生した場合は再アップロードを試みることができます。

于 2012-09-05T11:17:40.197 に答える