澄清 - 使用Blobstore API将图像/视频上传到Google云端存储

时间:2016-03-13 20:38:49

标签: python google-app-engine google-cloud-storage blobstore google-console-developer

我一直在试图弄清楚如何使用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云端存储,然后使用blob键调用我的/upload处理程序。

我很困惑在此之后该怎么做。这是我/upload的处理程序代码:

 class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):
        upload = self.get_upload()[0]
        blob_key = upload.key()

这是将图片/视频上传到Google云端存储时获取blob_key的正确方法吗?

文档说使用blobstore.create_gs_key('/gs' + 'bucketname' + 'filename')创建blob_key。文件名来自哪里?这个代码是否应该进入我的post函数,用于在对象存储在GCS中后调用的上传处理程序?

此外,从谷歌文档中,我对这段代码的作用或对图片的影响感到困惑:

with gcs.open(filename, 'w') as f:
f.write('abcde\n')

1 个答案:

答案 0 :(得分:1)

在这里查看我刚刚在GitHub中为您创建的示例:

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

如果您对此有任何疑问,请与我们联系。