我一直在努力弄清楚如何使用 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')