【问题标题】:Can I upload a file to GCS from Google Endpoints?我可以从 Google Endpoints 将文件上传到 GCS 吗?
【发布时间】:2015-01-25 11:03:55
【问题描述】:

我正在尝试将文件从 API Rest (Google Endpoints) 上传到 GCS,但我检索到了很多错误。我不知道是我使用了不好的方式还是只是 Google Endpoints 没有上传文件。

我正在尝试让我的客户将文件上传到我的项目存储桶中。

我读到“Endpoints 不接受 multipart/form-data 编码,因此您无法将图像直接上传到 Endpoints”。

Mike 回答了我 at this post 但不知道如何在我的项目中实现它。

我正在使用这个库(Python): https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/

如果可能,有什么更好的方法?有什么例子吗?

非常感谢。

【问题讨论】:

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


    【解决方案1】:

    我认为 Mike 在上一篇文章中的意思是,您应该使用 Blobstore API 将文件上传到 GCS,而不是使用端点,然后将数据再次带到 blobstore。

    但这取决于您的客户端是什么平台。如果您使用基于 Web 的客户端,您应该使用 Mike 解释的普通方式(通过使用 HTML 表单和处理程序)。但如果您使用 Android 或移动客户端,则可以使用 GCS 客户端库或 GCS REST API。

    【讨论】:

    • Yosi,你知道 storage.object.insert 是如何工作的吗?它来自云存储 API。我也需要这样做。
    • 尽量不要将文件发送到端点。而是使用 blobstore API。 Blobstore API 将像这样工作:您将文件发送到 Blobstore 服务,您应该创建一个处理程序,并将其上传到 GCS。就是这么简单。您不必通过将其发送到端点来使其复杂化。 cloud.google.com/appengine/docs/python/blobstore
    • 是的,我做到了。我的 Endpoints /getUploadURL 生成一个 blobstore URL。因此,在表单中,我将 action="" 指向这个生成的 URL。上传后,如何获取url并返回?
    • 约西,谢谢。完美运行。现在,您知道如何获取当前用户了吗?我正在使用 users.get_current_user() 但返回 None。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2022-01-07
    • 1970-01-01
    • 2023-03-26
    • 2015-08-28
    • 2018-04-28
    • 1970-01-01
    相关资源
    最近更新 更多