2014-09-28 136 views
7

我试图建立一个基本的基于python的谷歌应用程序引擎网站,允许用户将文件上传到谷歌云存储(以图片为主)文件上传到谷歌云存储谷歌的App Engine(Python)的

我一直在浏览JSON API和GCS客户端库概述(以及blobstore等)的文档,并且仍然没有很好的处理方法,哪些是最好的方法以及它们是如何相关的。如果有人能够给出一个这方面的概述,或者指向我可以查看的一些资源,那将会很棒。

此外,任何相关的示例代码都会非常有用。我已经能够在这里运行上传示例,但不知道它们是否适用于应用引擎设置:https://github.com/GoogleCloudPlatform/storage-file-transfer-json-python

谢谢!

+1

我也无法弄清楚这一点。我不确定Google的文档是否应该受到指责,但是很难构建这样的解决方案。我最终使用了Datastore的Image API。 – Tjorriemorrie 2014-09-28 17:52:24

+1

2016年,它仍然不是ckear – sqram 2016-06-03 06:42:49

回答

8

Google Cloud Storage有两个API - XML APIJSON API。 XML API基于XML,非常类似于Amazon S3 API。 JSON API与许多其他Google API类似,可与标准Google API客户端库(例如,Google API Python library)一起使用。这两种API都可以在任何地方使用,可以使用或不使用App Engine,并且基于RESTful HTTP调用。

App Engine提供了几种访问Google云端存储的标准方式。第一个内置于App Engine的API中,称为"Google Cloud Storage Python API"。这不会直接使用XML或JSON API。它已被弃用,不再推荐。

第二个App Engine库被称为"Google Cloud Storage Python Client Library",它不是核心App Engine API的一部分。相反,它是Google推出的一个Python库,您可以像任何其他库一样下载并添加到您的应用程序中。这个库恰好使用XML API来实现。它提供了一些对App Engine用户非常有用的额外功能,例如在正在进行时序列化上传的功能。在python/demo目录下有一个使用这个库作为下载的一部分的例子。您可以also see it online

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

用户不需要使用特定于App Engine的库,除非他们发现它们很有用。标准的Python库或甚至只是使用urlfetch手写的HTTP调用也可以。 App Engine库仅为App Engine用户提供了一些有用的额外功能。

App Engine也有一个“Blobstore Python API”。这是App Engine特有的功能,与Google云端存储不同,只是它提供了一些Google云端存储挂钩,例如可以使用Blobstore API将文件存储在Google Cloud Storage中。

+0

布兰登,只是为了澄清,如果我有一个App Engine应用程序,并且我希望用户上传到Google Cloud Storage,我使用Blobstore Python API? – Michael 2015-06-05 06:42:54

+0

你当然可以,是的。 – 2015-06-05 17:35:55