2

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')
4

1 に答える 1

2

GitHub で作成したばかりのこのサンプルを確認してください。

https://github.com/lucena/gae-upload-gcs

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2016-03-17T22:38:29.337 に答える