gpt4 book ai didi

iphone - Google App Engine 可用于 "check for updated"并下载二进制文件 Web 服务吗?

转载 作者:行者123 更新时间:2023-12-03 20:36:12 24 4
gpt4 key购买 nike

我是 Google App Engine 新手,如果您能提供任何帮助,我将不胜感激。我有一个 iPhone 应用程序,它从设备上本地存储的 sqlite 数据库获取数据。

我想设置一个 Google App Engine Web 服务,我的 iPhone 客户端将与该服务进行通信,并检查是否有需要下载的较新版本的 sqlite 数据库。

因此,iPhone 客户端使用某种版本号/时间戳访问 Web 服务,如果有更新的文件,App Engine 将通知客户端,然后客户端将请求下载新的数据库,App Engine 将提供服务。

是否可以在 Google App Engine 中设置网络服务来执行此操作?谁能给我指出任何示例代码/教程吗?

非常感谢

最佳答案

我要做的是将 SQLite DB 作为 gzipped blob 保留在数据存储中。使用 SHA1 哈希作为 etag。客户端使用 etag header 执行 GET 请求,服务器使用 304 Not Modified 或 200 进行响应,并在响应正文中包含 blob 内容。

有一个专门用于 Blob 的 API,称为 Blobstore API,但要使用它,您需要启用计费。如果不启用计费,您仍然可以轻松地提供 blob,但每个请求、响应和实体大小将被限制为 10MB。如果您的压缩数据库比这个大,您可以将下载分解为多个请求,因为您控制客户端和服务器代码。仅使用数据存储的自定义 Blob 处理程序可能如下所示:

class MyModel(db.Model):
body = db.BlobProperty()

class MyBlobHandler(webapp.RequestHandler):
def get(self):
entity_key = self.request.get("entity_key")
entity = MyModel.get(entity_key)
self.response.headers['Content-type'] = 'what/ever'
self.response.out.write(entity.body)
def put(self):
entity = MyModel(body=db.Blob(self.request.body))
entity.put()
self.response.out.write(entity.key())

关于iphone - Google App Engine 可用于 "check for updated"并下载二进制文件 Web 服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2939207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com