2

我一直在努力弄清楚如何使用 Blobstore API 将图像/视频上传到 Google Cloud Storage 以用于我的 App Engine Python Web 应用程序。这是我到目前为止的位置:

我使用以下代码为我的 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。文件名从何而来?这段代码是否应该进入我的 post 函数,用于在对象存储在 GCS 后调用的上传处理程序?

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

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 回答