【问题标题】:Upload image to Appengine Datastore using BlobStore and Endpoints使用 Blob 存储和端点将图像上传到 App Engine 数据存储区
【发布时间】:2014-11-15 18:05:50
【问题描述】:

如何使用 blobStore 将文件/图像上传到 Appengine 数据存储区?我正在使用 Google Cloud Endpoints。

这是我的模型:

class ProductImage(EndpointsModel):
    _message_fields_schema = ('product', 'enable', 'image')
    product = ndb.KeyProperty(Product)
    image = ndb.BlobKeyProperty(required=True)
    enable = ndb.BooleanProperty(default=True)

如何从 API Explorer 对其进行测试?在前端,我使用的是 AngularJS。

【问题讨论】:

    标签: python google-app-engine endpoints-proto-datastore


    【解决方案1】:

    我想不出用 just 端点来做到这一点的方法;我必须有一个带有部分端点应用程序、部分 webapp2 blobstore_handlers 应用程序的混合服务器。如果您按照 Blobstore 上传示例为这些部分使用 webapp2 的东西,它就可以工作。例如,流程应该是:

    1. 客户端请求一个上传 URL(使用 Endpoints 进行此调用,并拥有 它基本上是做 blobstore.create_upload_url(PATH)
    2. 客户端上传 图像到给定的 URL,由您处理 blobstore_handlers.BlobstoreUploadHandler 方法,拉出 上传和转储 blob_info.key()(例如 JSON)
    3. 客户端调用 createProduct 或其他任何端点,然后传回 它刚刚收到的 blobkey 以及您的其他部分 产品图像模型。您可能想在该方法中调用 get_serving_url 并将其存储在您的模型中,以后不应更改。
    4. 然后客户端可以使用该隐藏的服务 url 来查看图像。

    此外,我对 BlobKeyProperty 有很多“乐趣”。在开发部署中,一切正常,但在“生产”中,在存储的 blobkey 上调用 get_serving_url() 时会出现无效图像错误。我认为这可能是由于 blob 实际上不是位图,而开发人员不在乎。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 2018-12-17
      相关资源
      最近更新 更多