我是Google云平台的新手,我正在尝试使用客户端库/ apis来理解应用引擎与google云存储的集成选项。
但我现在更困惑的是客户端库选项的多重选择。
我试着寻找答案,但我仍然有一些疑问。因此,我在下面发布了具体的问题/场景。此外,因为我看到的论坛有点老,所以我想确保我得到的答案是根据谷歌云平台目前支持的功能,因为它们有时会不断变化/升级。
你能帮我澄清一下我下面的疑问吗?
提前道歉,因为它们可能是非常基本的问题,因为我是新手。
谷歌云存储CLient库和谷歌云存储JSON客户端库一样吗?如果是,云存储客户端库和JSON客户端库是否仅限于云存储的JSON apis?或者云存储客户端库也支持XML apis?
比方说,我想执行从应用程序引擎到云存储的可恢复上传。它是否支持使用Google Cloud存储客户端库的xml和json api?
如果不支持,是否有其他客户端库支持xml和json app以从应用引擎恢复上传?
其次,我在云存储中看到了一个使用Python、https://cloud.google.com/storage/docs/xml-api/gspythonlibrary的示例
在本例中,他们使用了boto库和google-cloud-oauth2-boto-plug。
但我也在appengine文档中看到,Python和Java都直接支持oauth。那么为什么我们需要boto库和cloud-oauth2-boto-plugin呢?是不是因为他们直接使用xml集成python,而不是使用云存储客户端库?如果他们使用云存储客户端库,那么python将不需要安装boto库和cloud-oauth2-boto-plugin,因为它默认支持oauth?
谢谢。
基兰
发布于 2016-08-23 07:06:00
Google Cloud Storage有两个公共API,XML API和JSON API。XML的外观和行为与亚马逊的S3 API很相似,而且使用curl和wget等命令行实用程序下载和上传数据也很容易。JSON API看起来与其他Google Cloud API类似,因此如果您熟悉这些API,JSON API将与您预期的一样。
有多种客户端库:
Google API客户端库
Google API Client Libraries是一组库,用于访问各种编程语言中的各种Google。这些都利用了GCS的JSON API。
Gcloud-* (<-使用这些)
还有一组名字像gcloud-*的库,比如gcloud-java,gcloud-node,gcloud-python等等。这些库是下一代客户端库,它们删除了大量的样板代码。它们相当不错,而且还使用GCS的JSON API。
Boto图书馆
接下来是boto库。boto库是一个第三方Python库,主要用于支持Amazon的AWS实用程序。除了支持亚马逊网络服务的S3之外,它还通过XML支持全球通信服务。注意,还有一个不支持GCS的Boto3库。由于boto库不是针对Google的,并且对google的身份验证机制没有特别的了解,所以boto有一个名为google-cloud-oauth2-boto-plug的身份验证插件,它提供了该功能。
GCS有一个名为"gsutil“的命令行实用程序。它是从命令行与GCS交互的一个很好的工具。默认情况下,它通过JSON API与GCS对话,但可以将其配置为使用XML API,当使用XML API时,它将使用boto库来执行此操作。
GCS App Engine客户端
除此之外,还有额外的、仅限应用程序引擎的GCS client libraries for Java and Python。这些库使用XML API。与gcloud-java和gcloud-python相比,它们的主要优势在于,当使用app engine的本地开发服务器进行开发时,它们提供了一个基本的本地伪GCS,并且它们可以很容易地保存它们的上传/下载状态,以便稍后恢复。如果这对你来说并不重要,我建议使用gcloud-python。
关于Auth的一个注记
当在谷歌云中运行代码时,例如在GCE或App Engine上,谷歌使得使用OAuth自动将身份验证作为服务帐户变得非常容易。gcloud-*库利用了这一点。如果你在App Engine中使用它们,身份验证就会发生。你可以在gcloud-python auth guide中阅读更多关于它的内容。
https://stackoverflow.com/questions/39089384
复制相似问题