为什么谷歌云中的不同包或命名约定?

时间:2017-04-13 04:43:27

标签: java google-cloud-platform google-cloud-storage google-cloud-sdk

我最近开始使用谷歌云平台,并遇到了各种各样的软件包,如

Storage storage = storageBilder.build();
storage.get("bucketname", Storage.BucketGetOption.fields())
Storage.BucketGetOption.fields();

如果我使用上面的代码,我面临The method get(String, Storage.BucketGetOption) is undefined for the type Storage

它实际上使用了以下软件包中的存储

com.google.api.services.storage.Storage storage = storageBilder.build();
(i.still.do.not.know.this.)storage.get("bucketname", Storage.BucketGetOption.fields())
com.google.cloud.storage.Storage.BucketGetOption.fields();

为什么这种存储以各种方式实现? com.google.apicom.google.cloud的区别或用途是什么?

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

Google多年来发布了许多Java API客户端库。

当前最好的Java API客户端是google-cloud library。它使用Java包com.google.cloud。对于云存储,如果类位于com.google.cloud.storage下,则您将使用此库。

在此库之前,还有另一组名为Google APIs Client Libraries的库。这些库将他们的类放在com.google.api包中。对于云存储,您可以在com.google.api.services.storage中找到课程。使用此库的代码也将使用独特的存储资源动词函数模式,如storage.buckets().objects().get()模式。

仍然支持Google API客户端库,但我建议您更喜欢使用google-cloud库来获取新代码。不幸的是,由于这个库转换,你在网上找到的一些代码示例将使用前者或后者,或者更糟糕的是,两者都使用。