当前位置: 首页 > 知识库问答 >
问题:

使用Google App Engine(Python)将文件上载到Google云存储

胡永逸
2023-03-14

我正在尝试建立一个基于python的基本谷歌应用引擎站点,允许用户将文件上传到谷歌云存储(主要是图像)

我已经阅读了JSON API和GCS客户端库概述(以及blobstore等)的文档,但仍然没有很好地了解哪种方法是最好的以及它们之间的关系。如果有人能概述一下,或者给我指出一些我可以查看的资源,那就太好了

此外,任何相关的示例代码都会非常有用。我已经能够在此处运行上载示例,但不确定它们是否对应用程序引擎设置有用:https://github.com/GoogleCloudPlatform/storage-file-transfer-json-python

谢谢!!

共有1个答案

闻安宜
2023-03-14

Google云存储有两个API——XML API和JSON API。XML API基于XML,非常类似于Amazon S3 API。JSON API类似于许多其他Google API,它与标准的Google API客户端库(例如,Google API Python库)配合使用。这两个API都可以在任何地方使用,无论是否使用App Engine,都基于RESTful HTTP调用。

App Engine提供了几种访问Google云存储的标准方法。第一个是作为一个名为“谷歌云存储Python API”的功能内置到App Engine的API中。这不直接使用XML或JSON API。它已弃用,不再推荐。

第二个App Engine库称为“Google Cloud Storage Python Client Library”,不是核心App Engine API的一部分。相反,它是Google推出的Python库,您可以像任何其他库一样下载并添加到您的应用程序中。该库恰好是使用XML API实现的。它提供了一些对App Engine用户有用的额外功能,例如在上传过程中序列化上传的能力。在python/demo目录中,有一个使用此库作为下载的一部分的示例。您也可以在线查看。

Java和Go中也存在这些工具的等价物。

用户无需使用特定于应用引擎的库,除非他们发现它们有用。标准的Python库,甚至只是使用urlfetch手工编写的HTTP调用,也可以正常工作。App Engine库只为App Engine用户提供了一些有用的额外功能。

应用程序引擎也有一个“Blobstore Python API”。这是App Engine特有的功能,与Google云存储不同,只是它提供了一些Google云存储的挂钩,例如使用Blobstore API在Google云存储中存储文件的能力。

 类似资料:
  • 我有一个要求,我需要上传文件到谷歌云存储(他拥有并完全维护它)桶。 这个谷歌云存储桶是由我的客户创建的。 我是谷歌云的新手,有亚马逊S3的经验。我在服务器上运行SSI,以将事务数据加载到平面文件。 我为谷歌云创建了一个示例帐户,并安装了谷歌SDK。我可以通过gsutil手动上传文件。 我的问题是 > 我应该如何建议我的客户共享凭据? 我如何连接到谷歌云存储与提供凭据独立? 如何通过以上两个步骤将文

  • 我想上传文件从谷歌应用程序引擎到谷歌云存储我使用Pyhton 3.8和烧瓶。 app.yaml: 要求。文本 我试图上传文件使用Flask(https://www.tutorialspoint.com/flask/flask_file_uploading.htm) /tmp(在App Engine临时存储(https://cloud.google.com/appengine/docs/standa

  • 我使用以下链接使用谷歌云存储: 谷歌云 我想上传一个对象,使用上面的API中给出的插入函数。我使用的代码如下: 但我得到的错误如下: 致命错误:未捕获的异常“Google_ServiceException”,消息为“调用POST时出错”https://www.googleapis.com/storage/v1beta1/b/mybucket/o: (400)第66行的/home/www/publi

  • 我已经阅读了与此相关的所有其他答案。但这对我不起作用,或者我只是不明白一些事情。请帮忙。 我正在从客户端发送'image/png'base64字符串。它是这样的:“Ivborw0kggoaaansuheugaaaaaaaaaaa……” 在云函数我有方法: 有什么不对劲?

  • 我的情况是,当我以JSON字符串的形式从其他来源接收数据时,我希望将此字符串上载到Google云存储,而不将此字符串写入本地文件并上载此文件。有没有办法做到这一点。非常感谢。如下代码所示 因此,我预计Google云存储将有一个文件test.json,其中包含来自jsonString的内容