Blobstore API を使用して、App Engine Python Web アプリの Google Cloud Storage に画像/動画をアップロードする方法を理解しようとして頭を悩ませています。これが私がこれまでのところです:
次のコードを使用して、HTML フォームのアクション URL を作成します。
upload_url = create_upload_url('/upload', gs_bucket_name='bucket')
webapp2/Jinja テンプレートを使用し、upload_url を HTML テンプレートに渡します。
<form action="{{upload_url}}" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="submit" value="SUBMIT">
</form>
これにより、ファイルが Google Cloud Storage に直接アップロードさ/upload
れ、blob キーを使用してハンドラーが呼び出されることがわかっています。
この後どうしようか迷っています。これは私のハンドラコードです/upload
:
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload = self.get_upload()[0]
blob_key = upload.key()
これは、画像や動画を Google Cloud Storage にアップロードするときに blob_key を取得する正しい方法ですか?
ドキュメントはblobstore.create_gs_key('/gs' + 'bucketname' + 'filename')
、blob_key を作成するために使用すると言います。ファイル名はどこから来たのですか?このコードは、オブジェクトが GCS に保存された後に呼び出されるアップロード ハンドラのポスト関数に入れる必要がありますか?
また、Googleドキュメントから、このコードが何をしているのか、または写真に収まっているのかについて混乱しています:
with gcs.open(filename, 'w') as f:
f.write('abcde\n')