首页 文章

各种客户端库中的混淆以及将App Engine与 Cloud 存储集成的API

提问于
浏览
0

对谷歌 Cloud 平台有点新意,我正在尝试使用客户端库/ apis了解谷歌 Cloud 存储的应用引擎集成选项 .

但是我现在对于存在的客户端库选项的多种选择更加困惑 .

我试着寻找答案,但我还是有些疑惑 . 所以我在下面发布了具体的问题/方案 . 此外,由于我看到的论坛数量有点陈旧,所以我希望确保根据Google Cloud Platform中当前支持的功能获得答案,因为它们有时会不断更改/升级 .

你能否帮我澄清下面的疑惑?

提前道歉,因为他们可能是非常基本的问题,因为我是新手 .

Google Cloud Storage CLient Library与Google Cloud存储JSON客户端库相同吗?如果是, Cloud 存储客户端库和JSON客户端库是否仅限于 Cloud 存储的JSON api?或者 Cloud 存储客户端库也支持XML apis吗?

让我们说,例如我想从应用引擎执行可恢复的上传到 Cloud 存储 . 它是否支持使用Google Cloud存储客户端库的xml和json api?

如果没有,是否有任何其他客户端库支持xml和json apis,以便从应用引擎上进行可恢复上传?

其次,我在Python中看到了一个 Cloud 存储示例,https://cloud.google.com/storage/docs/xml-api/gspythonlibrary

在这个例子中,他们使用了boto库和google-cloud-oauth2-boto-plug .

但是我也在appengine docs中读到Python和Java都直接支持oauth . 那么为什么我们需要boto库和cloud-oauth2-boto-plugin?是因为他们使用xml apis直接集成python而不使用 Cloud 存储客户端库?如果他们使用 Cloud 存储客户端库,那么python将不需要安装boto库和cloud-oauth2-boto-plugin,因为它默认支持oauth?

谢谢 .

基兰

1 回答

  • 1

    Google Cloud 端存储有两种公共API,即XML API和JSON API . XML API看起来很像亚马逊的S3 API,并且很容易使用curl和wget等命令行实用程序来下载和上传数据 . JSON API与其他Google Cloud API类似,因此如果您熟悉这些API,JSON API将如您所愿 .

    有各种各样的客户端库:

    Google API客户端库

    Google API Client Libraries是一组用于以各种编程语言访问各种Google API的库 . 这些都使用GCS的JSON API .

    Gcloud- *(<----使用这些)

    还有一组名称如gcloud- *的库,例如gcloud-javagcloud-nodegcloud-python等 . 这些库是下一代客户端库,并删除了大量的样板代码 . 他们're quite nice, and they also use GCS'的JSON API .

    博托图书馆

    接下来是boto库 . boto库是第三方Python库,主要用于支持Amazon的AWS实用程序 . 除了支持AWS的S3,它还通过XML API支持GCS . 请注意,还有一个不支持GCS的Boto3库 . 由于boto库并非针对Google而且对Google的身份验证机制没有特别了解,因此有一个名为google-cloud-oauth2-boto-plug的boto身份验证插件可提供该功能 .

    GCS有一个名为“gsutil”的命令行实用程序 . 它是从命令行与GCS交互的绝佳工具 . 它默认通过JSON API与GCS对话,但可以将其配置为使用XML API,而在使用XML API时,它会使用boto库来执行此操作 .

    GCS App Engine客户端

    除了所有这一切,还有额外的app引擎,GCS client libraries for Java and Python . 这些库使用XML API . 它们优于gcloud-java和gcloud-python的主要优点是它们在使用app引擎's local development server and that they make it easy to save their upload/download state to be resumed later. If that'进行开发时提供了一个基本的本地GCS假货,我建议只使用gcloud-python .

    关于Auth的注释

    在Google Cloud 中运行代码(例如在GCE或App Engine上)时,Google可以非常轻松地使用OAuth作为服务帐户进行身份验证 . gcloud- *库利用了这一点 . 如果您在App Engine中使用它们,则会发生身份验证 . 您可以在gcloud-python auth guide中阅读更多相关信息 .

相关问题