首页 文章

Google App Engine - 将Blobstore API与Google Cloud 端存储配合使用

提问于
浏览
1

我不得不存储大小超过1MB的文件,谷歌应用引擎建议我将它们存储在Google Cloud 端存储中 . 应用引擎BlobProperty不合适 .

Using Blobstore API with Google Cloud Storage部分建议使用create_upload_url函数的gs_bucket_name参数 .

我尝试过这个 .

gcs_upload_url = blobstore.create_upload_url('/myupload', gs_bucket_name='bucketname.appspot.com/')

我为POST获得的结果URL不是 /myupload ,它有点像

<form action="http://myapp.appspot.com/_ah/upload/XXXXXXXXXXX7NNN-XXXXYYY/" method="post" enctype="multipart/form-data">

我在/ upload /之后更改了部分,但重点是,它显然错过了创建一个正确的上传URL,我的处理程序可以识别它 .

将create_upload_url与gs_bucket_name一起使用的正确方法是什么,并且获取正确的URL来处理帖子?

显然官方文档在这里没有帮助 .

2 回答

  • 2

    您在 create_upload_url 函数中传递的路径是success_path . 见下面的描述 .

    在将随表单提交的文件上载到Blobstore之后,将处理上载请求的请求处理程序的URL路径 .

    在将文件上载到BlobStore或Google Cloud Storage后,App Engine会调用success_path .

    当用户提交上传Web表单时,如果您使用该表单而不是Blobstore,则上传的数据将直接转到Blobstore或Google Cloud Storage . (Google Cloud 端存储需要gs_bucket_name参数 . )Blobstore重写传入请求以删除上传的数据(MIME部分正文)并添加Blobstore密钥(作为MIME部分中的 Headers ),然后将重写的请求传递给应用程序与给予create_upload_url()的URL路径相关联的处理程序,作为success_path . 该路径的处理程序可以处理表单的其余部分 .

    此函数提供的URL旨在用作上载表单的操作 . 您提供的路径类似于上传后处理程序 .

  • 3

    这是正确的方法 . 上传URL由AppEngine本身处理:它将接受文件上传,然后直接调用您自己的处理程序 .

相关问题