【问题标题】:Google App Engine - Using Blobstore API with Google Cloud StorageGoogle App Engine - 将 Blobstore API 与 Google Cloud Storage 结合使用
【发布时间】:2014-08-26 21:02:59
【问题描述】:

我必须存储大小在 1MB 以上的文件,而谷歌应用引擎建议我应该将它们存储在谷歌云存储中。应用引擎 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,我的处理程序可以识别该 URL。

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

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

【问题讨论】:

    标签: python google-app-engine google-cloud-storage


    【解决方案1】:

    你传入create_upload_url函数的路径是success_path。请参阅下面的说明。

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

    在文件上传到 BlobStore 或 Google Cloud Storage 后,App Engine 会调用success_path。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-06-15
        • 2015-06-13
        • 2013-06-27
        • 2011-09-27
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        • 2021-11-06
        • 2014-11-05
        相关资源
        最近更新 更多