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

时间:2014-09-28 10:30:50

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

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

我已经浏览了JSON API和GCS客户端库概述(以及blobstore等)的文档,但仍然没有很好地处理哪种方法是最好的方法以及它们如何有关系。如果有人可以对此进行概述或指出我可以查看的一些资源,那就太棒了

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

谢谢!

1 个答案:

答案 0 :(得分:8)

Google云端存储有两个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云端存储中存储文件的功能。