Google 带应用引擎的云存储

Google cloud storage with app engine

快把我逼疯了,有人请帮帮我 here.This google 云的东西很混乱 me.I 我有点不对劲,我的 understanding.I 中缺少一些东西想使用云 storage.Now 我有一个默认的 Android Studio 项目,它有一个 android 客户端,一个应用程序引擎后端,由实体、端点、客户端库等组成,还有一个 WEB CLIENT.While 通过 google 云存储文档,我发现了以下内容-

  1. Google APIs 客户端库
  2. Google 云存储客户端库
  3. Google 云存储 API
  4. Google 云存储 JSON API Java
  5. 的客户端库

我仍然不确定每个人都做什么 actually.I 不知道如何在我的 android 客户端中实现云存储。

如果我使用云存储,为什么我需要 App Engine 后端应用程序?我的后端不需要 API,对吧?我可以像使用 Volley 一样使用 Google Cloud Storage JSON API 直接使用我的存储桶。我在这里遗漏了什么吗?

android client/app 是否有关于如何使用云存储的 "hello world" 教程,或者有人可以提供帮助吗?

如果您 100% 确定不需要任何后端逻辑,而且永远不需要,请参阅 Using Google Cloud Storage JSON api in android 以获取直接 Android <-> Google 云存储操作。

通常,在一个成功的应用程序的生命周期中,最终需要后端的一些逻辑(例如处理不同版本的客户端——并非所有更新都在同一纳秒内:-),所以它是通常更谨慎和面向未来的是让前端转到 App Engine 后端,除了提供对云存储的访问之外,还可以应用所需的任何逻辑。

在 0.1 版本中,所需的逻辑量可能非常少(尽管通常至少需要某种身份验证),但如果应用程序成功,可能需要新版本,并且后端将能够发展到处理那个。

然后在评论中提问:

As far as I have understood the appengine, if I need to store data in NoSQL datastore, then I can make a backend with endpoint support which will in turn consume my Restful API.

更常见的安排是让后端供应一个restfulAPI给前端消费;而且,这就是 Cloud Endpoints 可以为您做的(尽管您可以根据需要以许多其他不同的方式设计和实现 restful API)。

I mean, can I/should I consume the cloud storage rest API from within my backend endpoint, which itself is used to call my own rest API?

一个健壮的架构基于关注点分离。让 Android 上的前端 运行 主要关注整个应用程序的 "human interface" 部分——清晰有效地呈现数据,与用户交互。

前端可以将几乎所有其他问题委派给后端,包括存储和应用程序特定逻辑的大多数方面,这些逻辑涉及将什么存储在哪里,是否允许访问(哪种 - read/write 或 read/only) 到某些数据,具体取决于用户的身份验证等。

此委派可以利用 Cloud Endpoints,或者,您可以选择以不同的方式设计和实现它(例如,通过不同的框架生成和使用应用程序的 REST API)。

Why do I need backend logic to deal with different versions of clients?

例如,当客户端的新版本想要存储和检索比旧版本更多的数据时,您将需要它——例如,在将来的某个版本中,您可能会认为它很有用添加 GPS 位置数据,或者可选地添加多张照片或音频片段等,这些在以前的版本中没有使用。 (当然,如果不知道您的应用程序是关于什么的,就很难具体说明,但总的来说,总会有一些您在早期版本中没有做的事情,并且想添加到未来的某个版本中:-)。

在这种情况下,后端需要确切地知道从客户端期望得到哪些点点滴滴的数据,以及反过来将哪些数据返回给客户端——然后这些关键方面将取决于在客户端的版本上;如果没有后端逻辑的调解,新老客户端之间的平滑无缝过渡将是不可行的,特别是在一些客户端升级到较新版本而其他客户端仍然停留在旧版本的过渡期间。