我想使用一个文件共享服务器,在我的应用程序的多个实例中,在多台计算机上保持某些文件的最新和不变——比如(例如)写一个多人游戏,它将玩家的所有位置存储在一个文本文件中,并使用一些东西像Dropbox一样,在所有应用程序中保持文本文件不变,每个应用程序实例都可以用该应用程序的播放器位置更改文件,然后其余的应用程序可以相应地更新。这只是一个例子,并不是我打算使用这项技术做的事情。我想做的事情不依赖于快速共享数据,而是定期下载和更新文本文件。
我想知道我如何能够做到这一点使用Dropbox API的Object-C而不提示用户任何Dropbox用户名/密码-只需存储一个Dropbox帐户的登录信息,自动登录并更新/下载存储在它的文件?
根据我在实验中发现的情况,Dropbox通过web浏览器提示用户输入密码,并设计用于容纳多个帐户,而我只需要容纳“服务器”帐户。
那么,到底是使用Dropbox API来做这类事情,还是应该使用其他东西呢。或者我需要了解如何编写自己的服务器。对我来说,使用某种文件共享API似乎比编写实际的服务器容易得多。
谢谢你的帮助,
本
您可能会考虑使用谷歌应用程序引擎(GAE)。我最近有一个类似的要求,我认为这是一个很好的选择,当你想要集中的数据。另外,您可以使用自己的自定义身份验证进行无浏览器帐户登录,或者我认为甚至可以通过OAuth进行登录?我想这取决于数据的敏感程度。我只是自己滚。
从我的研究中,我发现使用Dropbox作为服务器在可伸缩性方面存在一些问题,因为您将被限制为每天5000次呼叫。源码它是建立在AmazonS3上的,所以您也可以直接使用它。
GAE电梯最高可达675,000台,但可免费增加至9100万。https://developers.google.com/appengine/docs/quotas
我确实找到了一个用Java实现这一点的开源项目,您可以看看Python示例
我编写了一个守护进程,它不断检查更新的文件并同步它们。我写了我自己的文件管理器iOS应用程序。您可以在这里找到实现:
https://github.com/H2CO3/MyFile/tree/master/DropboxDaemon
我个人不是iOS开发者,但我在寻找其他东西时遇到了这个问题,我想我会为OP的问题提供另一个潜在的解决方案。
微软刚刚发布了一款名为Azure移动服务的产品,它支持iOS开发(以及其他平台)。这基本上是一种方便的方法,可以设置一个后端系统,包括推送通知、身份验证等,而无需自行启动。您不需要了解任何有关Azure或服务器的信息,因为安装过程将引导您完成大部分内容。这是新的,所以请记住这一点,但在这种情况下它看起来很有希望。
下面是一段10分钟的视频,介绍如何将其与iOS开发的应用程序配合使用,以及指向更多文档的链接:http://channel9.msdn.com/posts/iOS-Support-in-Windows-Azure-Mobile-Services/
希望这能有所帮助。